我的javascript函数有问题。我有一个注册表单,在其中我使用jquery ajax检查输入的用户名是否被另一个用户使用(通过检查数据库)。在按下提交按钮"validateMyForm()“之后,将调用-my javascript函数,我在其中验证输入的内容。我的jquery ajax也在其中(您可以在下面的代码中看到我的代码)。您知道,如果"validateMyForm()“函数的返回值为true,则表单将被posted(在正常情况下,ajax方式为否)。如果输入的用户名与任何人都不匹配,我想发布我的表单,如果用户名被另一个人使用,我不想发布。但是当我按下submit按钮时,函数跳过"$.post“部分,总是返回true。你能帮帮我吗?
我的PHP代码是:
<form method="post" action="signup.php" önsubmit="return validateMyForm();" id="formtag">
<input id="username" name="username" class="input-text" type="text"/>
<input type="submit" name="submit1" id="register" value="Register" />
</form>我的javascript函数是:
function validateMyForm() {
var returnedVal = true;
//get username input text
.
.
.
$.post('ajax/checkUsername.php',{ username:username },function(data){
//Checking that entered username is used by another person or no
.
.
.
if(is used by another)
returnedVal= false;
else
ShowError;
}, "json");
return returnedVal;}
发布于 2013-07-16 05:07:26
这是因为您进行了异步调用。因此,在服务器为post请求发送响应之前返回true。
您必须使用回调函数或在post调用完成后显示响应。
$("form").submit(function(event) {
//validate your form here
...
$.post("/ajax/checkUsername.php", {username: username}, function(data) {
//check returned value and show response to the user
...
});
event.preventDefault();
return false;
}https://stackoverflow.com/questions/17663906
复制相似问题