0

我正在使用 jQuery 验证:http ://bassistance.de/jquery-plugins/jquery-plugin-validation/并且无法将验证消息重置为默认状态。IE; 没有突出显示。我想要实现的是,如果我关闭我的对话窗口,那么验证器会将自身重置为一个状态,就像第一次打开窗口一样。但是,当我通过单击 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

Close在你的函数中试试这个:

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

这是有效的解决方案!

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