我正在使用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
}
答案 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();