我在ASP.NET MVC 2框架中遇到了客户端验证方面的一些麻烦,希望有人可以帮助我。
在某些情况下,我发现能够重置表单的内容或只是单个输入元素是有用的,我需要任何验证错误消失。这本身并不是很难,这里提供的建议很有效: How do I clear MVC client side validation errors when a cancel button is clicked when a user has invalidated a form?
问题在于,当触发时,客户端验证会进入主动模式,在每次按键时以及输入失去焦点时执行验证。还有一种很好的方法可以重置这种状态吗?
答案 0 :(得分:2)
事实证明,我的一些问题可以通过将重置按钮设置为验证框架所遵循的reset
类型来解决。当发生失败提交时(由于无效字段),这不起作用,在这种情况下,我最终使用以下函数(selector
是一个jQuery选择器字符串):
resetFieldValidation: function (selector) {
var fields = $(selector);
fields.removeClass('input-validation-error').addClass('input-validation-valid');
fields.siblings('.field-validation-error').text('').removeClass('field-validation-error').addClass('field-validation-valid');
fields.each(function () {
$(this)[0]['__MVC_HasTextChanged'] = false;
$(this)[0]['__MVC_HasValidationFired'] = false;
});
}
该函数的最后一部分设置值,指示验证框架字段未更改且之前未触发验证错误。