2011-10-18 9 views
1

私は控えめな検証が設定されたフォームを用意しています。しかし、フォームでselect要素を無効にしなければならない場合があります。その場合、要素が再び有効になることがあります(主に、QAがあらゆる可能な状況を試していますが、それでも)。これが起こると、select要素の "required"検証規則が機能しなくなります。フィールドでASP.NET MVCの目立たない検証を有効にする方法

私は要素のルールコレクションから必要なルールを削除して再追加しようとしましたが、無駄にしました。私は配線を試み、hereと記載されている検証拡張を呼び出しても動作しません。

私は問題の根本的な原因を知りたいのですが、私はこの時点でハックと回避策についても開いています。私はこれが解決された問題だと感じていますが、私は検索でそれを見ていません。

おかげで、 マシュー

UPDATE:私はちょうど私の愚かな過ちまでFESS回答を選択していないように誘惑していますが、それはウェブが良くなりません。何が起こっているのかは、select要素のオプションが別のフィールドに基づいて動的であるということです。無効化は、他のフィールドに基づいてオプションに入る項目がない場合に発生し、オプションを再度有効にすると、オプションが新たに入力されます。私がやっていたことは、 "required"ルールを満たしたオプションリストを再作成したときに、デフォルトオプションに "0"の値を入れていたことです。私は空の文字列にデフォルト値を変更し、問題はなくなった。

質問に対処するためのプロトコルとは何ですか?私はそれを閉じなければならない?あなたは私が正しくリコール、それは#formIdの子である控えめなdata-属性を持つすべての要素に再び控えめな検証を有効にする必要があり

$.validator.unobtrusive.parse('#formId'); 

を呼び出す場合

答えて

0

何が起きます。

+0

私はそれを試したと信じていますが、私は検証します。 –

1

邪魔にならない検証属性を再解析するには、属性が最初に解析されたときに作成されたvalidatorおよびunobtrusiveValidationデータをクリアする必要があります。次に、あなたは次のように再解析することができます:

$("form").removeData("validator"); 
$("form").removeData("unobtrusiveValidation"); 
$.validator.unobtrusive.parse("form"); 
関連する問題