j查询验证重置表单错误,当我关闭对话框

jQuery validate resetForm error when I close dialog

本文关键字:对话框 错误 验证 查询 表单      更新时间:2023-09-26

我正在使用jQuery validate: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   
        }

Close函数中试试这个:

 $dialog.dialog({
    close: function(event, ui) {
               $("#frmreport").validate().resetForm();
           }
 });

这是可行的解决方案!

 var $form = $('#userForm');
        $form.find("[data-valmsg-replace]")
               .removeClass("field-validation-error")
               .addClass("field-validation-valid")
               .empty();