首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php注册表中的jquery ajax

php注册表中的jquery ajax
EN

Stack Overflow用户
提问于 2013-07-16 05:04:14
回答 1查看 802关注 0票数 0

我的javascript函数有问题。我有一个注册表单,在其中我使用jquery ajax检查输入的用户名是否被另一个用户使用(通过检查数据库)。在按下提交按钮"validateMyForm()“之后,将调用-my javascript函数,我在其中验证输入的内容。我的jquery ajax也在其中(您可以在下面的代码中看到我的代码)。您知道,如果"validateMyForm()“函数的返回值为true,则表单将被posted(在正常情况下,ajax方式为否)。如果输入的用户名与任何人都不匹配,我想发布我的表单,如果用户名被另一个人使用,我不想发布。但是当我按下submit按钮时,函数跳过"$.post“部分,总是返回true。你能帮帮我吗?

我的PHP代码是:

代码语言:javascript
复制
<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函数是:

代码语言: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;

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-16 05:07:26

这是因为您进行了异步调用。因此,在服务器为post请求发送响应之前返回true

您必须使用回调函数或在post调用完成后显示响应。

代码语言:javascript
复制
$("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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17663906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档