5

ASP.net MVCビューをライブボックスにリクエストしています。ビューには、JQueryの目立たないバリデータープラグインで使用される属性でマークアップされたフォームフィールドが含まれています。

ただし、クライアントスクリプトは機能していません。私の理論では、検証フレームワークは、MVCビューがライブボックスに読み込まれるまでに長い時間が経過したページの読み込み時にのみトリガーされるためです。

したがって、検証フレームワークに修正する新しいフォームフィールドがあることをどのように知らせることができますか?

乾杯、イアン。

4

5 に答える 5

19
var $form = $("form");

$form.unbind();
$form.data("validator", null);

$.validator.unobtrusive.parse(document);
// Re add validation with changes
$form.validate($form.data("unobtrusiveValidation").options);
于 2013-08-05T17:15:56.953 に答える
6

次のブログ投稿をご覧ください。そして、ここにもう1つあります。

于 2011-06-07T17:39:00.240 に答える
1

何らかの理由で、bjan と dfortun の回答を組み合わせる必要がありました...

だから私はこれを私の見解に入れました:

@{
  this.ViewContext.FormContext = new FormContext();
}

そして、これはajax呼び出しが終了した後にこれを実行します:

var form = $("#EnrollmentForm");
form.unbind();
form.data("validator", null);
$.validator.unobtrusive.parse(document);
form.validate(form.data("unobtrusiveValidation").options);
于 2014-02-06T15:38:47.700 に答える
1

別のオプション、むしろトリックで、私にとってはうまくいきました。ajax呼び出しによって返される部分ビューの先頭に次の行を追加するだけです

this.ViewContext.FormContext = new FormContext(); 

参照

于 2012-04-13T10:08:11.660 に答える
0

同様の問題がありました。Ajax リクエストを使用してフォームの一部を異なるフォーム フィールドで再表示するフォームがありました。クライアント側で手動で行うことにより、目立たない検証を使用しました

@Html.TextBoxFor

私のテキストボックス用。何らかの理由で、無効なフィールドで送信しようとすると検証が機能します (つまり、テキスト ボックスが赤で囲まれ、適切なエラー メッセージが入力した内容とともに表示されます)。

data_val_required

たとえば属性。

しかし、別のフィールドでフォームを変更してから再度送信する Ajax リクエストを作成するボタンをクリックすると、無効なフィールドの赤いアウトラインのみが表示されますが、エラー メッセージは表示されません。

bjan のトリックはうまくいきましたが、問題の原因はまだわかりません。クライアント側の検証を実行するために必要な HTML はすべてそこにありましたが、エラー メッセージの属性値が表示されない理由がわかりません。

私が考えることができるのは、送信が行われた後、jQuery 検証コードがフォーム フィールドをチェックするための 2 回目の試行を行わないことだけです。

于 2013-02-13T21:06:08.157 に答える