申し分なく、フォーム検証関数があります。関数は、フィールドが有効でない場合に false を返すフォーム検証関数を実行します。
問題は、フィールドが有効かどうかを ajax を使用してチェックする関数に到達するときです。
何らかの理由で、ajax が返されるのを「待機」せず、自動的に false を返すようです。
これを回避する方法はありますか?
コードは次のとおりです。
function form_validation(){
if (!NewValidationForm('pcode', 'Please fill in all the fields'))
return false;
if (!NewValidationForm('fname', 'Please fill in all the fields'))
return false;
if(!validate_coupon()){
alert("bad!!");
return false;
}
return true;
}
function validate_coupon(){
var url = $j("#site_url").val() + 'ajax_functions.php';
var coupon = $j("#pcode").val();
var result_status = false; // seem its jumps from here to:
$j.ajax({
type: "POST",
url: url,
data: { ajax: 'ajax', coupon: coupon}
}).success(function(insertID){
var obj = $j.parseJSON(insertID);
if(obj.status == 1){
result_status = true;
}
});
// straight over here
if(result_status == true){
return true;
}
}