私が取り組んでいる製品は、MVC3 が舞台裏で動作する JQuery 検証を使用しています。(ドロップダウンの値が > 0 であるかどうかに基づいて) 読み取り専用として切り替えるフィールドがあります。
秘訣は、このフィールドが読み取り専用でない場合は必須にする必要があり、読み取り専用の場合は、データがあるかどうかにかかわらず、エラーなしで送信する必要があるということです。
これを行うにはどうすればよいですか?
私が取り組んでいる製品は、MVC3 が舞台裏で動作する JQuery 検証を使用しています。(ドロップダウンの値が > 0 であるかどうかに基づいて) 読み取り専用として切り替えるフィールドがあります。
秘訣は、このフィールドが読み取り専用でない場合は必須にする必要があり、読み取り専用の場合は、データがあるかどうかにかかわらず、エラーなしで送信する必要があるということです。
これを行うにはどうすればよいですか?
$.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();