0

jquery.validate.unotrusive.js プラグインを使用して、次のようなフォーム フィールドを動的に作成しようとしています。

var message = $("<textarea id='test'></textarea>");
$(message).attr("data-val", "true")
.attr("data-val-number", "The field CustomerId must be a number.")
.attr("data-val-required", "The CustomerId field is required.");

var span = $('<span class="field-validation-valid" data-valmsg-replace="true"></span>');
$(span).attr("data-valmsg-for", $(message).attr("id"));

var form = $("<form action='url'></form>");

$(form).append(message,span);

jquery.validate と jquery.validate.unobtrusive js ファイルの両方を埋め込みますが、フォームの送信時に textarea フィールドが検証されません。ここで何がうまくいかないのか誰にもわかりますか?

4

1 に答える 1

3

新しい要素を DOM に動的に追加する場合、それらを登録するために目立たない検証規則を再解析する必要があります。したがって、フォームを DOM に追加したら、$.validator.unobtrusive.parseメソッドを呼び出して、これらの変更をクライアント検証フレームワークに通知します。

...
$(form).append(message, span);
$.validator.unobtrusive.parse(form);

また、クライアント側の検証が登録されている DOM 内の既存のフォームに入力要素を動的に追加するだけの場合は、このフォームの以前のルールも削除する必要があります。

// adding some form elements to an existing form ...

$(form).removeData('validator').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse(form);
于 2012-06-15T06:43:47.547 に答える