我一直在使用这个例子:http://youhack.me/2010/05/04/username-availability-check-in-registration-form-using-jqueryphp/来创建一个表单(在添加到数据库之前将用户带到确认页面 - 之后的简单部分)..但是我希望它检查用户名是否可用是否在提交表格之前。我不能为我的生活弄清楚我做错了什么:P
我的jquery / AJAX如下:(它调用的PHP文件工作正常,我没有必要把它放在这里)
$(document).ready(function()
{
$(".form").submit(function()
{
var username = $(".userID").val();
$.ajax({
type: "POST",
url: "id_check.php",
data: "userID="+ username,
success: function(response){
if(response=="NO"){
alert("no");
}
else if(response=="YES"){
alert("yes");
}
}
});
return false; //if i take this line out it submits either way
});
});
我知道php的工作原理是因为在使用或不使用用户名时会弹出正确的警告,但是当响应为YES时我无法提交表单而没有在响应也为NO时提交。我已尝试过很多不同的东西(包括$(form).submit()和IF语句中的各种返回等),但无济于事。
我基本上需要它提交时不采取名称,并在不提交时...任何帮助非常感谢!! (我想我已经包含了所有必要的信息来解决它哈哈)
艾伦
答案 0 :(得分:0)
你有没有尝试过(看看评论):
$(".form").submit(function(e)
{
var username = $(".userID").val();
//cache the current form
var form = this;
//check if the event is started by the user or by your success function
//if it's triggered by the user, check for the username
if (e.originalEvent !== undefined){
$.ajax({
type: "POST",
url: "id_check.php",
data: "userID="+ username,
success: function(response){
if(response=="NO"){
alert("no");
}
else if(response=="YES"){
//submit the form you have cached
$(form).submit();
alert("yes");
}
}
});
//This is to prevent the form from submitting when you click the submit button
return false; //if i take this line out it submits either way
}
});
答案 1 :(得分:0)
返回false将不允许按钮提交,这也是因为返回false语句在ajax完成调用之前运行。因此,我认为您需要有一个隐藏按钮,当响应==“是”时,您将其称为提交。