提交错误检查

时间:2015-04-26 17:35:39

标签: javascript jquery

我正在检查提交所需的输入,现在一切都像我想要的那样。只有行为奇怪的错误变量我认为它每次都会覆盖错误变量。我想要的是每当有错误时最多不显示成功消息。现在只有电子邮件有效才有效,因为那是传递var错误的最后一行。

当前代码

var error;
contactForm.on("submit", function(e){
    e.preventDefault();
    contactFields.each(function(){
        if ($(this).val().length == 0 || $(this).val() == 0 || $(this).val() == ""){
            $(this).css({"border" : "1px solid red"});
            error = true;
        } else {
            $(this).css({"border" : "2px solid green"});
            error = false;
        }
    }); 
    if(contactName.val().length < 2) {
        contactName.css({"border" : "1px solid red"});
        error = true;
    } else {
        contactName.css({"border" : "2px solid green"});
        error = false;
    }
    var checkmail = $.ajax({
        method: "POST",
        url : "emailcheck.php",
        data : {email: contactEmail.val()},
        global: false,
        async:false,
    }).responseText;
    if(checkmail === "valid") {
        contactEmail.css({"border" : "2px solid green"});
        error = false;
    } else{
        contactEmail.css({"border" : "1px solid red"});  
        error = true;
    }
    if (!error) {
        $("form").hide(); 
        $(".form-status").html("Successful sended");
    }   
});

现在每当电子邮件有效时它就会触发$("form").hide(); $(".form-status").html("Successful sended");,即使其他支票返回error = true。我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

我只是在猜... 让我知道它是否成功

var error;
contactForm.on("submit", function(e){
    e.preventDefault();
    contactFields.each(function(){
        if ($(this).val().length == 0 || $(this).val() == 0 || $(this).val() == ""){
            $(this).css({"border" : "1px solid red"});
            error = true;
        } else {
            $(this).css({"border" : "2px solid green"});
            if(!error){error = false;}
        }
    }); 

    if(contactName.val().length < 2) {
        contactName.css({"border" : "1px solid red"});
        error = true;
    } else {
        contactName.css({"border" : "2px solid green"});
        if(!error){error = false;}
    }
    var checkmail = $.ajax({
        method: "POST",
        url : "emailcheck.php",
        data : {email: contactEmail.val()},
        global: false,
        async:false,
    }).responseText;
    if(checkmail === "valid") {
        contactEmail.css({"border" : "2px solid green"});
        if(!error){error = false;}
    } else{
        contactEmail.css({"border" : "1px solid red"});  
        error = true;
    }
    if (!error) {
        $("form").hide(); 
        $(".form-status").html("Successful sended");
    }   
});

答案 1 :(得分:0)

你几乎拥有它:

var error;
contactForm.on("submit", function(e){
    error = false;
    contactFields.each(function(){
        if ($(this).val().length == 0 || $(this).val() == 0 || $(this).val() == ""){
            $(this).css({"border" : "1px solid red"});
            error = true;
        } else {
            $(this).css({"border" : "2px solid green"});
        }
    }); 
    if(contactName.val().length < 2) {
        contactName.css({"border" : "1px solid red"});
        error = true;
    } else {
        contactName.css({"border" : "2px solid green"});
    }
    var checkmail = $.ajax({
        method: "POST",
        url : "emailcheck.php",
        data : {email: contactEmail.val()},
        global: false,
        async:false,
    }).responseText;
    if(checkmail === "valid") {
        contactEmail.css({"border" : "2px solid green"});
    } else{
        contactEmail.css({"border" : "1px solid red"});  
        error = true;
    }
    if (!error) {
        $("form").hide(); 
        $(".form-status").html("Successful sended");
    }
    return !error;   
});