私は単純な HTML フォームを持っています。javascript を使用してフォームの一連の検証を実行しようとしています。
$("#sign_in_form").submit(function(event){
event.preventDefault();
if(check_validity()){
console.log("valid");
return true;
} else {
console.log("invalid");
return false;
}
console.log("end of function");
});
今check_validity()
は時間のかかる機能です。データベースからのデータをチェックし、true または false で応答します。しかし、上記の関数は、チェックの有効性が完了する前に、完了するのを待たずにステートメントcheck_validity
を実行するようです。else
これを修正するにはどうすればよいですか? おそらくコールバック関数を使用すると、これを修正できます。しかし、コールバックを使用して戻り値を受け取るにはどうすればよいでしょうか?
function check_validity(){
$.post("http://xxxx.com/check_if_user_exists",
{email: $("#contact_person_email").val()},
function(data){
if(parseInt(data) == 1)
return false;
else
return true;
});
}