【问题标题】:How to reset ASP.NET MVC client validation mode?如何重置 ASP.NET MVC 客户端验证模式?
【发布时间】:2010-06-09 08:26:41
【问题描述】:

我在 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?

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

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2 client-side-validation


    【解决方案1】:

    事实证明,我的一些问题可以通过将重置按钮设置为输入验证框架所尊重的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;
        });
    }
    

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

    【讨论】:

    • 你让我的一天 Morten ;) 谢谢你 +1 (y)
    猜你喜欢
    • 2010-09-14
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2011-02-08
    相关资源
    最近更新 更多