1

我在 ASP.NET MVC 2 框架中的客户端验证方面遇到了一些麻烦,希望有人能帮助我。

在几种情况下,我发现能够重置表单的内容或仅重置单个输入元素很有用,并且我需要任何验证错误才能消失。这本身并不难,这里提供的建议效果很好: 当用户使表单无效时单击取消按钮时,如何清除 MVC 客户端验证错误?

问题是,当被触发时,客户端验证会进入一种激进模式,该模式会在每次按键以及输入失去焦点时执行验证。是否也有重置此状态的好方法?

4

1 回答 1

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;
    });
}

该函数的最后一部分设置值,向验证框架指示字段未更改且先前未触发验证错误。

于 2010-06-09T14:17:13.370 回答