1

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

经过一番研究,我在这里找到了一个建议,在 ASP.NET MVC 3 中使用不显眼的验证,当表单无效时如何采取措施?它说要制作我自己的不显眼的适配器。所以我做到了,它在这里:

$.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。

有人可以帮忙完成这个吗,拜托。谢谢!

4

1 回答 1

1

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

$("form").bind("invalid-form.validate", function () {
   //My code here
}
于 2013-07-11T22:21:08.020 回答