2

を無視し、すべての隠し入力は、いくつかを行うと、いくつかは、私はasp.netのMVC 3を使用
ないバージョン1.9で検証、
しかしを取得しますそしてjquery.validate + jquery.unobtrusive(jqueryの1.7.1)jquery.validateのV 1.9は1.7、すべてがうまく動作バージョンでいくつかの隠し入力

が、これは生成されたHTMLです:

<!--this gets validated--> 
     <input type="hidden" data-val="true" data-val-number="The field Chef must be a number." data-val-required="The Chef field is required." value="" name="Chef" id="Chef">  
<span data-valmsg-replace="true" data-valmsg-for="Chef" class="field-validation-valid"></span> 

    <!--this one is ignored--> 
     <input type="hidden" data-val="true" data-val-number="The field MyFruit must be a number." data-val-required="The MyFruit field is required." value="" name="MyFruit" id="MyFruit"> 
<span data-valmsg-replace="true" data-valmsg-for="MyFruit" class="field-validation-valid"></span> 

誰が、なぜこれが起こる可能性が知っていますか?

答えて

7

1.9バージョンの検証プラグインでは、:hidden要素は、defaultで無視されます。

もう一つの変化は、隠し要素 より簡単にフォームの設定を行う必要があり、これらはデフォルトでは無視されます(オプション「無視」 を持っている「:隠された」今、デフォルトとして)。理論的には、これは既存の セットアップを破る可能性があります。場合によっては実際には、 でignore-optionを "[]"に設定することで修正できます(角括弧は の引用符なし)。

控えめなバージョンを使用しているため、オプションを設定することはできません。だからあなたは自分でinitプラグインをしないので、初期化後に設定を変更する必要があります。あなたはこのようにそれを修正することができます:

var validatorSettings = $.data($('form')[0], 'validator').settings; 
validatorSettings.ignore = ""; 

このコードは、マークアップの最初のform要素のために働く、あなたのフォーム(複数可)を指定すると、デフォルトの動作を変更することができます。

+1

コード例でこれを逆にしていませんか? _ "角括弧** **引用符なし" _ – Sparky

+0

@ Sparky672私は私の答えを更新しました、私は何かを忘れてしまった。 –

+0

最初の入力は隠されていても検証されます – Omu

関連する問題