我的表单包含很少的输入字段和两个可用的操作Store
和Validate
。我使用jquery-validation
插件进行客户端验证。
在Store
操作的情况下,只有2个字段是强制性的,如果Validate
操作5个字段。首先,当我尝试执行Validate
操作验证规则时,工作正确。在我尝试执行Store
操作之后,为了让它工作,我需要清除Validate
操作中的所有先前错误,并使用Store
操作规则再次验证表单。我尝试使用resetForm()
清除表单错误,但在我的情况下它不正常工作因为它只清除了验证错误消息,但表单仍然无效,在纠正错误之前我无法执行任何操作。请分享您的想法如何解决这个问题。
P.S。代码片段如下。
var validationOperMandatoryFields = new Array("field1", "field2", "field3", "field4", "field5");
var storeOperMandatoryFields = new Array("field1", "field2");
$(document).ready(function() {
var validator = $("#form").validate({
rules: {
field1: {
required: {
depends: function () {
return isMandatoryForOperation('field1')
}
}
},
field2: {
required: {
depends: function () {
return isMandatoryForOperation('field2')
}
}
},
field3: {
required: {
depends: function () {
return isMandatoryForOperation('field3')
}
}
},
field4: {
required: {
depends: function () {
return isMandatoryForOperation('field4')
}
}
},
field5: {
required: {
depends: function () {
return isMandatoryForOperation('field5')
}
}
}
}
});
});
function isMandatoryForOperation(fieldname) {
var operationName = $("#tempOper").val();
switch (operationName) {
case "Store":
return $.inArray(fieldname, storeOperMandatoryFields) > -1;
break;
case "Validate":
return $.inArray(fieldname, validationOperMandatoryFields) > -1;
break;
}
}
答案 0 :(得分:1)
要完全重置表单,您需要执行以下操作:
validator.resetForm();
$("#form").get(0).reset();