私は送信前にpaypalの電子メールアドレスが有効であることを確認したいというフォームがあります。だから私はjqueryのは、このjquery ajaxの呼び出しに時間がかかりすぎる
$('#new_user').submit(function(){
$.ajax({
type: 'post',
url: "/validate_paypal",
dataType: 'json',
data: {email : $('#user_paypal_email').val()},
success: function(data) {
if (data.response["valid"] == false){
$('#user_paypal_email').closest('.field').addClass('fieldWithErrors');
$('#user_paypal_email').append('<span style="color:#E77776;">This is not a valid email address</span>');
return false;
}else{
return true;
}
}
});
のようなコールを提出作っていますが、私はの終わりに偽のリターンを置けば問題は....このコールが第二のthatsとAjaxが完了する前に、ページがすでに更新されています私のjsonを見ることができるコールは正しいですが、何らかの理由で私はそれを今までやっていません。これを修正する方法に関するアイデア
における非同期偽に設定する必要がありますフォームが提出されるまで結果を得る。同期呼び出しに変更する必要があります(つまり、結果が返ってくるまでは何も起こりません - ユーザーの観点から見れば醜いかもしれません)か、デフォルトのフォーム送信を防ぎ、結果を受け取ったら自分で送信してください。 – nnnnnn
どのように私はそれを同期に変更するのですか? – Trace
async:false; –