0

ASP.NET MVC 3 アプリケーション。

JavaScript を使用して表示および非表示になるいくつかの動的フィールドを持つフォームを投稿しようとしています。これらの動的フィールドのいくつかでサーバー側の検証を行うために IValidatableObject を使用しています。

これらのフィールドが表示されているときにフォームを投稿すると、検証が正常に機能し、ValidationSummary に適切なエラー メッセージが表示されて返信されます。これらのエラーメッセージが表示されている間、これらのフィールドを非表示にします

document.getElementById("schoolNotListed").style.display = "なし";

フォームを再度投稿しようとすると、毎回 ValidationSummary エラーが表示されます。コントロールはコントローラーに到達せず、viewmodel の Validate() 関数にも到達しません。フォームの投稿を妨げているのは、クライアント側の検証です。

javaScript によって現在非表示になっているこれらのフィールドに対して、この検証をスキップまたは無効にする方法はありますか。または、javaScript を使用して ModelState をクリアできますか?

別の方法でアプローチする方法について何か提案があれば教えてください。

ありがとう

4

1 に答える 1

0

クライアント側の Javascript 検証ライブラリは、検証を行うルール オブジェクトを構築します。

それらを非表示にするときは、バリデーターを削除してみてください

$('#schoolNotListed').hide().rules('remove', 'required')
$.validate.unobtrusive.parse()

2 行目は、ルール オブジェクトを再構築するようバリデータに指示します。

この質問が役に立つかもしれません: JavaScript による必要な検証を無効にする

于 2012-07-26T02:50:38.833 に答える