0

フォームDOMオブジェクトが作成された後に検証を追加するために、考えられるすべてのバリエーションを試しました。コード自体は、jquery-ui.dialog を開いたり閉じたりする限り機能します。検証のためにハンドラーのどこをつなぎ合わせるかがわかりません。

 //party_device_edit Begin 
    var party_device_edit = $('#party_device_edit').dialog({
      autoOpen: false,  width:'auto',  modal: true, title: 'Edit Device', 
      buttons: {
        'Save': function(){
**//Tried Adding Validation Here**
            $.ajax({
            url: '/party_device/save.php',
            type: 'POST',
            data: $('#party_device_edit_form').serialize(),
            success: function(data){
              //Re-queries the data and refreshes the piece of the page that has updated data.
              $.get('helper.php?function=party_device&id=<?php echo $_GET['id'];?>',function(data){$('#party_device').html(data);});
              $('#party_device_edit').dialog('close');
            }
          });
        return false;
        }
      }
    });
    $(document).on('click', '.party_device_edit', function (e) {
        e.preventDefault();
        $.ajax({
        url: $(this).attr('href'),
        type: 'POST',
        success: function(data){
          party_device_edit.html(data);
**//Tried Adding Validation Here**
          party_device_edit.dialog('open');
**//Tried Adding Validation Here**
        }
      });
    });
    //party_device_edit End
4

1 に答える 1

1

Validate プラグインにを入れてajaxsubmitHandler.submit()モーダルの「保存」ボタンに を割り当てます。

$(document).ready(function () {

    $("#party_device_edit_form").validate({
        // // validate rules & options,
        submitHandler: function (form) {
            $.ajax({
                url: '/party_device/save.php',
                type: 'POST',
                data: $(form).serialize(),
                success: function (data) {
                    //Re-queries the data and refreshes the piece of the page that has updated data.
                    $.get('helper.php?function=party_device&id=<?php echo $_GET['
                    id '];?>', function (data) {
                        $('#party_device').html(data);
                    });
                    $('#party_device_edit').dialog('close');
                }
            });
            return false;
        }
    });

    var party_device_edit = $('#party_device_edit').dialog({
        autoOpen: false,
        width: 'auto',
        modal: true,
        title: 'Edit Device',
        buttons: {
            'Save': function () {
                $("#party_device_edit_form").submit();
            }
        }
    });

});

HTML を表示できなかったため、特定のデモを作成することはできませんが、これに非常によく似たテスト ケースを示します...

デモ: http://jsfiddle.net/7bA8M/

于 2013-03-04T17:24:35.043 に答える