我想在將訪問者信息添加到mysql數據庫之前驗證表單。 jQuery腳本如下: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;
});
});
如果缺少名稱,則表單顯示錯誤並將焦點字段完成。問題是驗證碼驗證。如果匹配,表單將被成功處理,並且潛在客戶被添加到數據庫中,但是,如果在文本字段中輸入的安全代碼與生成的代碼不匹配,則會顯示錯誤,但表單信息仍會添加到數據庫。看起來像「返回false; // < =功能應該退出這裏」不被識別。 任何有關我的代碼有問題的建議?
無關的問題,但做這樣的事情'輸入#phone'實際上可能比單純的'#phone'慢。 'id'查找速度非常快,不需要讓jquery驗證它也是'input',除非真的需要檢查。 –
謝謝詹姆斯,我會根據你的建議修改代碼。 – pbertuzzi