Php 我正在尝试验证表单上的电子邮件字段

Php 我正在尝试验证表单上的电子邮件字段,php,jquery,ajax,Php,Jquery,Ajax,大家好,请帮我解决我的问题。实际上,我正在尝试使用javascript验证表单上的电子邮件字段,并发布一个ajax请求,以检查该电子邮件是否存在,但我的javascript函数不会等到ajax响应并且每次都返回false。当电子邮件不存在时,我希望返回true $(document).ready(function(){ //global vars var form = $("#signupForm"); var email = $("#email"); v

大家好,请帮我解决我的问题。实际上,我正在尝试使用javascript验证表单上的电子邮件字段,并发布一个ajax请求,以检查该电子邮件是否存在,但我的javascript函数不会等到ajax响应并且每次都返回false。当电子邮件不存在时,我希望返回true

    $(document).ready(function(){
    //global vars
    var form = $("#signupForm");
    var email = $("#email");
    var email_error = $("#invalid");

    //On blur
   // userEmail.blur(validateEmail);

    //On Submitting
    form.submit(function(){

        if(validateEmail()){
            alert("submit true");
            return true;
        }else{
        alert("submit false");
            return false;
            }
    });


    function validateEmail(){
        //if it's NOT valid
        alert("In email");
        var a = $("#email").val();
        var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;

        if(email.val() == ""){
            email_error.html("Please enter your email ");
            return false;
        }
        //if it's valid email
        else if(filter.test(a)==false){
            email_error.html("Please enter Valid email address");
            return false;
        }
        else if(filter.test(a)==true){alert("elseif");
        var baseUrl = '<?= base_url() ?>';

                $.ajax({
                    type: "POST",
                    url: baseUrl+"index.php/index/validateUserEmail",
                    data: "useremail="+$("#email").val(),
                    success: function(msg){
                    alert(msg);
                    if(msg == "1")
                        {
                            $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/cross.png" />');
                            $("#emailValidate").val("1");  
                            email_error.html("This email-Id already exists!");
                            return false;
                        }
                        else
                        {

                            $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/tick.png" />');
                            $("#emailValidate").val("0");
                            email_error.html(" ");
                            alert("alok");
                            return true;
                        }


                    }
                });

        }

        else{
        email_error.html(" ");
        return true;
        }

    }
});
$(文档).ready(函数(){
//全局变量
变量形式=$(“#注册形式”);
var email=$(“#email”);
var email_error=$(“#无效”);
//关于模糊
//blur(validateEmail);
//提交时
表单提交(函数(){
if(validateEmail()){
警告(“提交真实”);
返回true;
}否则{
警告(“提交错误”);
返回false;
}
});
函数validateEmail(){
//如果它是无效的
警报(“在电子邮件中”);
var a=$(“#email”).val();
var过滤器=/^[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+[a-zA-Z0-9.+[a-zA-Z0-9]+[a-z]{2,4}$/;
如果(email.val()==“”){
email_error.html(“请输入您的电子邮件”);
返回false;
}
//如果它是有效的电子邮件
else if(filter.test(a)=false){
email_error.html(“请输入有效的电子邮件地址”);
返回false;
}
else if(filter.test(a)=true){alert(“elseif”);
var baseUrl='';
$.ajax({
类型:“POST”,
url:baseUrl+“index.php/index/validateUserEmail”,
数据:“useremail=“+$(“#email”).val(),
成功:功能(msg){
警报(msg);
如果(消息==“1”)
{
$(“#勾号“).fadeIn(“slow”).html(“”);
$(“#emailValidate”).val(“1”);
email_error.html(“此电子邮件Id已存在!”);
返回false;
}
其他的
{
$(“#勾号“).fadeIn(“slow”).html(“”);
$(“#emailValidate”).val(“0”);
电子邮件_error.html(“”);
警报(“警报”);
返回true;
}
}
});
}
否则{
电子邮件_error.html(“”);
返回true;
}
}
});
试试下面的方法

$(document).ready(function() {
    // global vars
    var form = $("#signupForm");
    var email = $("#email");
    var email_error = $("#invalid");

    // On blur
    // userEmail.blur(validateEmail);

    // On Submitting
    form.submit(function() {

                validateEmail(function(flag) {
                            if (flag) {
                                alert("submit true");
                                form[0].submit();
                            } else {
                                alert("submit false");
                            }

                        });
                return false;
            });

    function validateEmail(callback) {
        // if it's NOT valid
        alert("In email");
        var a = $("#email").val();
        var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;

        if (email.val() == "") {
            email_error.html("Please enter your email ");
            callback(false);
        }
        // if it's valid email
        else if (filter.test(a) == false) {
            email_error.html("Please enter Valid email address");
            callback(false);
        } else if (filter.test(a) == true) {
            alert("elseif");
            var baseUrl = '<?= base_url() ?>';

            $.ajax({
                        type : "POST",
                        url : baseUrl + "index.php/index/validateUserEmail",
                        data : "useremail=" + $("#email").val(),
                        success : function(msg) {
                            alert(msg);
                            if (msg == "1") {
                                $("#tick_cross").fadeIn("slow")
                                        .html('<img src="' + baseUrl
                                                + 'images/cross.png" />');
                                $("#emailValidate").val("1");
                                email_error
                                        .html("This email-Id already exists!");
                                callback(false);
                            } else {

                                $("#tick_cross").fadeIn("slow")
                                        .html('<img src="' + baseUrl
                                                + 'images/tick.png" />');
                                $("#emailValidate").val("0");
                                email_error.html(" ");
                                alert("alok");
                                callback(true);
                            }

                        }
                    });

        }

        else {
            email_error.html(" ");
            callback(true);
        }

    }
});
$(文档).ready(函数(){
//全局变量
变量形式=$(“#注册形式”);
var email=$(“#email”);
var email_error=$(“#无效”);
//关于模糊
//blur(validateEmail);
//提交时
表单提交(函数(){
validateEmail(函数(标志){
国际单项体育联合会(旗){
警告(“提交真实”);
表单[0]。提交();
}否则{
警告(“提交错误”);
}
});
返回false;
});
函数validateEmail(回调){
//如果它是无效的
警报(“在电子邮件中”);
var a=$(“#email”).val();
var过滤器=/^[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+[a-zA-Z0-9.+[a-zA-Z0-9]+[a-z]{2,4}$/;
如果(email.val()==“”){
email_error.html(“请输入您的电子邮件”);
回调(假);
}
//如果它是有效的电子邮件
else if(filter.test(a)=false){
email_error.html(“请输入有效的电子邮件地址”);
回调(假);
}else if(filter.test(a)=true){
警报(“elseif”);
var baseUrl='';
$.ajax({
类型:“POST”,
url:baseUrl+“index.php/index/validateUserEmail”,
数据:“useremail=“+$(“#email”).val(),
成功:功能(msg){
警报(msg);
如果(消息==“1”){
美元(“#勾号“)。法代因(“慢”)
.html(“”);
$(“#emailValidate”).val(“1”);
电子邮件错误
.html(“此电子邮件Id已存在!”);
回调(假);
}否则{
美元(“#勾号“)。法代因(“慢”)
.html(“”);
$(“#emailValidate”).val(“0”);
电子邮件_error.html(“”);
警报(“警报”);
回调(true);
}
}
});
}
否则{
电子邮件_error.html(“”);
回调(true);
}
}
});
演示:

还是更好的解决方案

$(文档).ready(函数(){
//全局变量
变量形式=$(“#注册形式”);
var email=$(“#email”);
var email_error=$(“#无效”);
//关于模糊
//blur(validateEmail);
//提交时
表单提交(函数(){
validateEmail().done(函数()){
控制台日志(“提交为真”);
表单[0]。提交();
}).fail(函数(){
控制台日志(“提交错误”);
});
返回false;
});
函数validateEmail(){
var deferred=jQuery.deferred()
//如果它是无效的
控制台。登录(“电子邮件”);
var a=$(“#email”).val();
var过滤器=/^[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z
$(document).ready(function() {
    // global vars
    var form = $("#signupForm");
    var email = $("#email");
    var email_error = $("#invalid");

    // On blur
    // userEmail.blur(validateEmail);

    // On Submitting
    form.submit(function() {
                validateEmail().done(function() {
                            console.log("submit true");
                            form[0].submit();
                        }).fail(function() {
                            console.log("submit false");
                        });
                return false;
            });

    function validateEmail() {
        var deferred = jQuery.Deferred()

        // if it's NOT valid
        console.log("In email");
        var a = $("#email").val();
        var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;

        if (email.val() == "") {
            email_error.html("Please enter your email ");
            deferred.reject();
        }
        // if it's valid email
        else if (filter.test(a) == false) {
            email_error.html("Please enter Valid email address");
            deferred.reject();
        } else if (filter.test(a) == true) {
            console.log("elseif");
            var baseUrl = '<?= base_url() ?>';

            $.ajax({
                        type : "POST",
                        url : baseUrl + "index.php/index/validateUserEmail",
                        data : "useremail=" + $("#email").val(),
                        success : function(msg) {
                            alert(msg);
                            if (msg == "1") {
                                $("#tick_cross").fadeIn("slow")
                                        .html('<img src="' + baseUrl
                                                + 'images/cross.png" />');
                                $("#emailValidate").val("1");
                                email_error
                                        .html("This email-Id already exists!");
                                deferred.reject();
                            } else {

                                $("#tick_cross").fadeIn("slow")
                                        .html('<img src="' + baseUrl
                                                + 'images/tick.png" />');
                                $("#emailValidate").val("0");
                                email_error.html(" ");
                                console.log("alok");
                                deferred.resolve();
                            }

                        }
                    });

        }

        else {
            email_error.html(" ");
            deferred.resolve();
        }

        return deferred.promise();
    }
});
$(function(){
    $('#submitButton').click(validateEmail)

})
function validateEmail(){
    //if it's NOT valid
    alert("In email");
    var a = $("#email").val();
    var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;

    if(email.val() == ""){
        email_error.html("Please enter your email ");
        return false;
    }
    //if it's valid email
    else if(filter.test(a)==false){
        email_error.html("Please enter Valid email address");
        return false;
    }
    else if(filter.test(a)==true){alert("elseif");
    var baseUrl = '<?= base_url() ?>';

            $.ajax({
                type: "POST",
                url: baseUrl+"index.php/index/validateUserEmail",
                data: "useremail="+$("#email").val(),
                success: function(msg){
                alert(msg);
                if(msg == "1")
                    {
                        $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/cross.png" />');
                        $("#emailValidate").val("1");  
                        email_error.html("This email-Id already exists!");
                        return false;
                    }
                    else
                    {

                        $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/tick.png" />');
                        $("#emailValidate").val("0");
                        email_error.html(" ");
                        alert("alok");
                        $("#signupForm").submit() // <--- HERE
                        return true;
                    }


                }
            });

    }

    else{
    email_error.html(" ");
    return true;
    }

}
$.ajax({
                    type: "POST",
                    url: baseUrl+"index.php/index/validateUserEmail",
                    data: "useremail="+$("#email").val(),
                    success: function(){

                }).done(function (msg) {

alert(msg);
                    if(msg == "1")
                        {
                            $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/cross.png" />');
                            $("#emailValidate").val("1");  
                            email_error.html("This email-Id already exists!");
                            return false;
                        }
                        else
                        {

                            $("#tick_cross").fadeIn("slow").html('<img src="'+baseUrl+'images/tick.png" />');
                            $("#emailValidate").val("0");
                            email_error.html(" ");
                            alert("alok");
                            return true;
                        }


                    }
})
.fail(function() { alert("error";
 return true;
); });