0

jQuery 検証を使用しています: http://bassistance.de/jquery-plugins/jquery-plugin-validation/で、検証メッセージをデフォルトの状態にリセットできません。すなわち; 強調表示されません。私が達成しようとしているのは、ダイアログウィンドウを閉じると、ウィンドウが最初に開かれたかのようにバリデータがリセットされることです。ただし、X をクリックしてダイアログを閉じて再度開くと、エラー メッセージがまだ表示されます。resetForm() がどこに行くべきか、またダイアログ (「閉じる」) 手順を準備する必要があるかどうかがわかりません。

問題に関連すると思われるコードのみを投稿しました。

誰かが私の間違いを指摘してくれたら幸いです。ありがとう

else if (this.name === 'Administration') {
    $("#formShow").show();
    // admin clicked

    //$("#confirm_department").show().html("You have selected administration");
    $("#formImage .col_1 li").hide();
    var $dialog = $('#frmreport');
    $dialog.dialog({
        autoOpen: true,
        modal: true,
        title: 'Submit a ' + name + ' report',
        width: 500,
        height: 400,
        draggable: false,
        resizable: true,
        // buttons: {
        // Close: function() {
        // $( this ).dialog( "close" );
        // $("#frmreport").get(0).reset();
        // }
        // }
    });
    //$( '#frmreport' ).dialog( 'close' );
    //$("#frmreport").get(0).reset();

    //console.log(name);
    $('input[name=dept]').val(name);
    $(".subtitle").text("Submit " + name + " feedback report");
    //code   
}

編集:コメントに従ってコードを更新しました

else if(this.name === 'Administration') {

            $("#formShow").show();

           // admin clicked


             //$("#confirm_department").show().html("You have selected administration");
             $("#formImage .col_1 li").hide();
             var $dialog = $('#frmreport');
               $dialog.dialog({
               autoOpen: true,
               modal: true,
               title: 'Submit a ' +name+ ' report',
               width: 500,
               height: 400,
               draggable: false,
               resizable: true,
               Close: function(event, ui) {
               $("#frmreport").validate().resetForm();
               }
               // buttons: {
               // Close: function() {
               // $( this ).dialog( "close" );
        // $("#frmreport").get(0).reset();
               // }
               // }
               });
        //$( '#frmreport' ).dialog( 'close' );
                //$("#frmreport").get(0).reset();

                //console.log(name);

             $('input[name=dept]').val(name);
             $(".subtitle").text("Submit " + name + " feedback report");

          //code   
        }
4

2 に答える 2

1

これは実用的なソリューションです!

 var $form = $('#userForm');
        $form.find("[data-valmsg-replace]")
               .removeClass("field-validation-error")
               .addClass("field-validation-valid")
               .empty();
于 2015-10-08T12:26:36.190 に答える
1

関数でこれを試してくださいClose

 $dialog.dialog({
    close: function(event, ui) {
               $("#frmreport").validate().resetForm();
           }
 });
于 2013-11-01T17:22:22.263 に答える