jquery - ASP.NET MVC 3検証とAJAX

原文 jquery asp.net-mvc-3

アプリでAjaxを使用してモーダルで表示されるフォームがあり、このフォームはMVC 3の組み込み検証を使用してフォームに検証があります(Microsoftはjquery.validateを使用)。

ただし、フォームがajaxを使用して呼び出されたように見えるため、検証ロジックは互いに通信していません(ドキュメントのロード後にページに追加されたものに.live()を使用しなかった場合と同様です)。 )

この問題を回避するにはどうすればよいですか?

編集

私はこれを使用してこれを動作させるように試みました:http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/以下の3nigmaによって提供されますが、それは何の効果もないようです:/

$.ajax({
                url: $(this).attr('href'),
                success: function (responseHtml) {
                    $('.uiModalContent').html($(responseHtml));
                    $('.uiModalContent').removeClass('loading');
                    // Apply validation to form that is inside the modal
                    $('.AjaxForm').removeData('validator');
                    $.validator.unobtrusive.parseDynamicContent('.AjaxForm input');
                },


jquery ajax binがスクリプトタグをオフにするため、javascriptを呼び出されたビュー内に直接配置できないため、モーダルを表示するためのajaxでの成功呼び出しにコードを追加しました。ただし、動的に追加されたフィールドに検証を適用していないようです...

どんな助けでも大歓迎です。ありがとう
答え
私は自分のプロジェクトで同様のことを行い、それは「私にとってはうまくいく」:)

おそらく、いくつかのことを試すことができます。


$('.uiModalContent').html($(responseHtml));では、responseHtmlをjqueryオブジェクトとしてラップする必要があるとは思いません。実際、おそらくresponseHtmlをそのまま使用する方が良いでしょう:$('.uiModalContent').html(responseHtml);
検証呼び出しを次のように変更してみてください:$.validator.unobtrusive.parse($('.uiModalContent'));


それがあなたの問題を解決するかどうかはわかりませんが、試してみる価値はあります。
関連記事

javascript - jQueryを評価済みコードに渡す方法は?

javascript - ウィジェットのようなajaxページセクションを作成する最良の方法は?

javascript - JavaScriptの継承:方法

jquery - 警告ボックスなしでjqueryが正常に機能しない

jquery - GMailボタンメニューのようなフローティングDivの自動マージンを設定する方法

javascript - 引用符をJavaScript関数に渡す

jquery - jQuery / CSS:コンテンツによって動的な幅を設定し、継承を回避

jquery - JSONデータを検査するグローバルAJAX成功ハンドラー

javascript - 全幅を使用してA4のdivのコンテンツを印刷することは可能ですか?

javascript - XpathをjQueryに置き換えようとしています