2

フォームを検証するためにjQuery検証プラグインを使用しています。私の問題は、フォームが動的に生成されるため、ページが最初に読み込まれたときにまだ存在していないことです。私はこれをどのように行うのか、あるいはそれができるのかどうかさえわかりません。これが私のコードです。フォームをハードコーディングしている限り機能します。

$(document).ready(function() {
    var post_url = '##removed##';

    $("#form").validate({
        success: "valid",
        rules: {
            username: {
                required: true,
                minlength: 6,
                maxlength: 15,
                remote: {
                    url: post_url,
                    type: "post",
                    data: { type : 'username' }
                }
            },
            email: {
                required: true,
                email: true,
                remote: {
                    url: post_url,
                    type: "post",
                    data: { type : 'email' }
                }
            }
        },
        messages: {
            username: {
                remote: "Username taken. Please choose another."
            },
            email: {
                remote: "E-mail address taken. Please choose another."
            }
        }
    });

});

jQueryのon()関数を使用して何かを考え出そうとしましたが、これまで試したことは何も機能していません。私が達成しようとしていることは、実行することさえできますか?最悪のシナリオは、フォームをハードコーディングすることですが、可能であればそれを避けたいと思います。

前もって感謝します ...

4

1 に答える 1

2

ajax接続を使用してフォームがロードされると想定しています。フォームを探してvalidate()関数を呼び出すコールバックを用意します。

また、DOM ミューテーション イベント (DOMNodeInserted) を使用してイベント リスナーをアタッチし、DOM に挿入されたノードが待機中のフォームであるかどうかを毎回確認してから実行することもできますvalidate()。お役に立てれば

于 2012-12-19T22:09:51.610 に答える