当我关闭对话框时,jQuery验证resetForm错误

时间:2013-11-01 17:14:54

标签: javascript jquery jquery-ui-dialog

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

2 个答案:

答案 0 :(得分:1)

Close函数中尝试此操作:

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

答案 1 :(得分:1)

这是可行的解决方案!

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