自定义不显眼的验证器未触发

时间:2014-01-14 22:11:33

标签: asp.net-mvc jquery-validate unobtrusive-validation

我的ASP.NET MVC项目中有一个自定义不显眼的验证器。我已经允许特定属性的多个属性实例。一切似乎都正确呈现。该属性的每个实例都包含另一个附加在其上的小写字母。因此,在呈现时,它可能类似于data-val-myvalidatoradata-val-myvalidatorb

在客户端,我正在选择所有我希望添加不显眼的验证器的输入,抓取属性,检查额外的小写字母,而不是为每个实例添加新方法和适配器

如果我运行F12,我可以看到,如果我检查$.validator.methods,我的方法就会被添加。但是,如果我输入的数据应该失败并点击表单的提交按钮,我的验证器就不会验证。我的验证方法是独立的功能。如果我添加一个断点,它就不会被击中。

如何确保方法正确连接?

我注意到的另一个问题是我在属性级别有一个字典来确定属性添加到HTML输入元素的次数。但是,在每个后续回发中,字典都不会重置。我的猜测是,我应该重写一些其他方法,但我无法确定它是什么。

2 个答案:

答案 0 :(得分:3)

我的问题是我在$(document).ready()匿名函数中包含了不显眼的验证。一旦我删除了它,一切都有效。

答案 1 :(得分:1)

尝试重新启用所有验证:

    var form = $("form"); // or other form selector

    $(document).ready(function () {
        form.removeData('validator');
        form.removeData('unobtrusiveValidation');
        $.validator.unobtrusive.parse(form);
    });