1

Sijax を使用した JQuery Validation プラグインを使用して、ユーザー名が有効かどうかを確認しようとしています。これは、Sijax (Ajax、Python) を使用して、ユーザーが既に存在するかどうかをサーバー上で確認することを意味します。このメソッドを Validation プラグインに追加しました。

$.validator.addMethod("availableName", function(value, element) {
        var check = true;
        var username = $("#username").val();
        Sijax.request('checkuser', [username]); 
        if (usercheck) {
            check = false;
            usercheck = false;
        } 
        return check },
        "That username is no longer available");

サーバー上の checkuser メソッドは、ユーザー名が使用可能かどうかをチェックし、usercheck 変数の値を変更します。私はfirebugでチェックし、メソッドusercheck(別のjavascriptメソッドを呼び出してusercheckを変更する)は正しい応答を送信しますが、他の行をスキップする可能性がありますか?

私が今抱えている問題は、ユーザー名フィールドの検証が、焦点を合わせて2回ぼかしたときにのみ発生することです。他のすべてのフィールドは問題なく機能します。これは、たとえば、ユーザー名「Jon」がすでに存在する場合、次のようになることを意味します。

  • ジョンに入り、フィールドをぼかす -> 何も起こらない
  • フィールドを再度フォーカスしてぼかす -> 「このユーザー名は既に存在します」

再フォーカス後に存在しないユーザー名を変更しても (たとえば、Jon1234 に)、「このユーザー名は既に存在します」と表示されます。これは、この分野が一歩遅れていることを意味すると思いますが、その理由はわかりません。

前もって感謝します!

4

0 に答える 0