1

折りたたまれたアコーディオン div 内に含まれる可能性のある要素を含むフォームがあります。誰かがフォームを送信し、目立たないバリデーターがこれらの「隠された」フォーム要素の1つ以上でエラーをキャッチした場合、折りたたまれたアコーディオンを開いてエラーを確認できるようにします.

少し調査した後、ここで提案を見つけました。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 に答える