5

私が取り組んでいる製品は、MVC3 が舞台裏で動作する JQuery 検証を使用しています。(ドロップダウンの値が > 0 であるかどうかに基づいて) 読み取り専用として切り替えるフィールドがあります。

秘訣は、このフィールドが読み取り専用でない場合は必須にする必要があり、読み取り専用の場合は、データがあるかどうかにかかわらず、エラーなしで送信する必要があるということです。

これを行うにはどうすればよいですか?

4

1 に答える 1

15
$.validator.setDefaults({
    ignore: ':hidden, [readonly=readonly]'
});

ignoreパラメータのデフォルトは です":hidden"。上記のコードを使用してデフォルトをリセットすることにより、jquery validate が引き続き非表示のフォーム要素に作用しないことを確認できますが、readonly="readonly"属性を持つ要素にも作用しません。

コメントへの返信

奇妙に聞こえるかもしれませんが、より多くのヘルプを得るにはコードを投稿する必要があるかもしれません。検証エラーを取り除くために試みることができることの 1 つは、おそらく次のように、読み取り専用属性を切り替えるときにフォームを手動で検証することです。

$('#the_text_box').attr('readonly', 'readonly');
$.validator.setDefaults(':hidden');
$('form').valid();
$.validator.setDefaults(':hidden, [readonly=readonly]');

インスタント検証エラー メッセージを回避するために、最初のページの読み込み中に同様のことを行うこともできます。

$.validator.setDefaults(':hidden, [readonly=readonly]');
$('form').valid();
于 2012-05-29T16:59:49.580 に答える