MVC 4添加了一个自定义不显眼的验证器

时间:2013-07-11 21:50:24

标签: validation asp.net-mvc-4

我有一个表单,其中的元素可能包含在折叠的折叠式div中。当有人提交表单并且不显眼的验证器在一个或多个这些“隐藏”表单元素上捕获错误时,我希望折叠的手风琴打开,以便他们可以看到他们的错误。

在做了一些研究之后,我在这里找到了一个建议Using unobtrusive validation in ASP.NET MVC 3, how can I take action when a form is invalid?,它说要制作我自己不引人注意的适配器。所以我做到了,就在这里:

$.validator.unobtrusive.adapters.add(
'collapsevalidation',
  function () {
   var tabs = $('.collapse').not('.in');
   //console.log("tabs.length: " + tabs.length);
   $(tabs).each(function () {
       if ($(this).has('.field-validation-error').length) {
           id = "#" + $(this).attr('id');
           //console.log("id: " + id);
           $("[data-target='" + id + "']").collapse('show');
       }
   });

}(jQuery的));

适配器插件已添加到我的页面,现在我正在试图弄清楚如何“挂钩”但我似乎无法这样做。到目前为止,我已将以下内容添加到我的页面中:

jQuery.validator.unobtrusive.adapters.add("collapsevalidation");

但这似乎不起作用。当我在提交时产生错误时,console.log行不写。

我知道这是一个自定义适配器,因为它不适用于特定元素,也不会返回任何内容,例如bool。

请有人帮忙完成此操作。谢谢!

1 个答案:

答案 0 :(得分:1)

虽然我没有直接找到上述答案,但我确实使用以下内容得到了我想要的结果:

$("form").bind("invalid-form.validate", function () {
   //My code here
}