jquery – 如何在提交表单之前等待ajax验证完成?

前端之家收集整理的这篇文章主要介绍了jquery – 如何在提交表单之前等待ajax验证完成?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
表单在validateUsername函数之前提交的问题有可能在服务器端完成用户名检查.

如何在validateUsername函数完成后提交表单?
希望这很清楚……

form.submit(function(){
    if (validateUsername() & validateEmail() & validatePassword()) {
        return true;
    } else {
        return false;
    }
});         

function validateUsername(){            
    usernameInfo.addClass("sign_up_drill");
    usernameInfo.text("checking...");
    var b = username.val();
    var filter = /^[a-zA-Z0-9_]+$/;     
    $.post("../username_check.PHP",{su_username:username.val()},function(data) {
        if (data=='yes') {
            username.addClass("error");
            usernameInfo.text("sorry,that one's taken");
            usernameInfo.addClass("error");
            return false;           
        } else if (!filter.test(b)) {
            username.addClass("error");
            usernameInfo.text("no funny characters please");
            usernameInfo.addClass("error");
            return false;   
        } else {
            username.removeClass("error");
            usernameInfo.text("ok");
            usernameInfo.removeClass("error");      
            return true;    
        }
    });             
}

解决方法

更详细的Olafur的答案 – 进行了AJAX调用,函数返回时无需等待.

在您提交表单之前,回调不会完成.

你应该做的是让按钮/触发器调用AJAX验证,回调应该提交表单而不是返回true.

猜你在找的jQuery相关文章