訪問者情報を mysql db に追加する前に、フォームを検証しようとしています。jQuery スクリプトは次のとおりです。
var phone = $("input#phone").val();
if (phone == "") {
$("label#phone_error").show();
$("input#phone").focus();
return false;
}
//Captcha validation
var security_code = $("input#security_code").val();
$.ajaxSetup({cache: false})
$.get('getsession.php', {requested: 'seccode'}, function (data) {
var session = data;
if (security_code !== session) {
$("label#security_code_error").show();
$("input#security_code").focus();
alert ('NO MATCH: '+security_code+' '+session);
return false; // <= FUNCTION SHOULD EXIT HERE
} else {
alert ('MATCH!!!: '+security_code+' '+session);
}
});
var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone;
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "bin/process.php",
data: dataString,
success: function() {
$('#contact_form').html("<div id='message'></div>");
$('#message').html("<h2>Contact Form Submitted!</h2>")
.append("<p>We will be in touch soon.</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/check.png' />");
});
}
});
return false;
});
});
名前が欠落している場合、フォームにエラーが表示され、入力するフィールドにフォーカスが置かれます。問題はキャプチャの検証です。一致する場合、フォームは正常に処理され、リードが DB に追加されます。ただし、テキスト フィールドに入力されたセキュリティ コードが生成されたコードと一致しない場合、エラーが表示されますが、フォーム情報は引き続き DB に追加されます。 . 「return false; // <= FUNCTION SHOULD EXIT HERE」が認識されていないようです。私のコードの何が問題なのかについて何か提案はありますか?