jQuery Validator を使用して、ユーザーがサインアップしているときに、目的のユーザー名が既に使用されているかどうかをサーバーに対してチェックしたいと考えています。PHP スクリプトuntaken.php
はこのジョブを実行しok
、ユーザー名が使用可能かtaken
どうか、または使用されているかどうかを返します。
ソース全体を以下に示しますが、問題の行は次のとおりです。
return data != "taken";
現在、「ユーザー名は既に使用されています」というメッセージが永続的に表示されます。ただし、次のように変更すると:
console.log( data != "taken" );
コンソールに表示されるテキスト ボックスに入力し、期待どおりのタイミングでメッセージを入力しますtrue
。false
これが、設計自体に責任がないことを私が知っている方法です。それはsuccess
、jQuery.ajax の句から何も返すことができないという事実です。
$.validator.addMethod("userCannotBeTaken", function(value, element){
var check;
check = $.ajax({
type: "GET",
url: "untaken.php",
data: ({ "user" : value }),
dataType: "text",
success: function(data){
return data != "taken"; //return false if taken or true if not, based on response
}
});
}, "Username already taken");
内から何かを返すにはどうすればよいjQuery.ajax
ですか?