是否将返回从JQuery函数传递到另一个函数?

是否将返回从JQuery函数传递到另一个函数?,jquery,validation,Jquery,Validation,我正在处理一个表单验证程序,当我调用底部的函数submitcheck时,if条件未满足,并且$send.buttonenable;他没有开枪。我已经在没有if语句的情况下确认函数确实被调用,并且if$send.buttonenable;按预期工作。我做错了什么 function submitcheck() { if (firstnamecheck() & lastnamecheck() & phonenumbercheck() & emailadd

我正在处理一个表单验证程序,当我调用底部的函数submitcheck时,if条件未满足,并且$send.buttonenable;他没有开枪。我已经在没有if语句的情况下确认函数确实被调用,并且if$send.buttonenable;按预期工作。我做错了什么

    function submitcheck() {
        if (firstnamecheck() & lastnamecheck() & phonenumbercheck() & emailaddresscheck() & customermessagecheck() == true) {
            $("#send").button("enable");
        }
    }

    $(".email").click(function() {
        $("#email-form").dialog("open");
    });

    $("#first-name").keyup(function(firstnamecheck) {
        if ($("#first-name").val().length >= 2) {
            $("#first-name-check").fadeIn(100);
            return true;
        }
        else if ($("#first-name").val().length < 2) {
            $("#first-name-check").fadeOut(100);
            return false;
        }
    });

    $("#last-name").keyup(function(lastnamecheck) {
        if ($("#last-name").val().length >= 2) {
            $("#last-name-check").fadeIn(100);
            return true;
        }
        else if ($("#last-name").val().length < 2) {
            $("#last-name-check").fadeOut(100);
            return false;
        }
    });

    $("#area-code, #phone-prefix, #phone-postfix").keyup(function(phonenumbercheck) {
        if ((($("#area-code").val().length == 3) && ($("#phone-prefix").val().length == 3) && ($("#phone-postfix").val().length == 4))) {
            $("#phone-number-check").fadeIn(100);
            return true;
        }
        else if ((($("#area-code").val().length < 3) && ($("#phone-prefix").val().length < 3) && ($("#phone-postfix").val().length < 4))) {
            $("#phone-number-check").fadeOut(100);
            return false;
        }
    });

    $("#email-address").keyup(function(emailaddresscheck) {
        if ($("#email-address").val().length >= 6) {
            $("#email-address-check").fadeIn(100);
            return true;
        }
        else if ($("#email-address").val().length <= 5) {
            $("#email-address-check").fadeOut(100);
            return false;
        }
    });

    $("#customer-message").keyup(function(customermessagecheck) {
        if ($("#customer-message").val().length >= 10) {
            $("#customer-message-check").fadeIn(100);
            return true;
        }
        else if ($("#customer-message").val().length <= 9) {
            $("#customer-message-check").fadeOut(100);
            return false;
        }
    });

    $("#customer-message").keyup(submitcheck);
好的,多亏了你们,我才弄明白。我重写了脚本,使其具有单独的处理程序函数和单独的激活器。以下方法确实有效:

    function submitcheck() {
        if (firstnamecheck() && lastnamecheck() && phonenumbercheck() && emailaddresscheck() && customermessagecheck() === true) {
            $("#send").button("enable");
        }
    }

    function firstnamecheck() {
        if ($("#first-name").val().length >= 2) {
            $("#first-name-check").fadeIn(100);
            return true;
        }
        else if ($("#first-name").val().length < 2) {
            $("#first-name-check").fadeOut(100);
            return false;
        }
    }

    function lastnamecheck() {
        if ($("#last-name").val().length >= 2) {
            $("#last-name-check").fadeIn(100);
            return true;
        }
        else if ($("#last-name").val().length < 2) {
            $("#last-name-check").fadeOut(100);
            return false;
        }
    }

    function phonenumbercheck() {
        if ((($("#area-code").val().length == 3) && ($("#phone-prefix").val().length == 3) && ($("#phone-postfix").val().length == 4))) {
            $("#phone-number-check").fadeIn(100);
            return true;
        }
        else if ((($("#area-code").val().length < 3) && ($("#phone-prefix").val().length < 3) && ($("#phone-postfix").val().length < 4))) {
            $("#phone-number-check").fadeOut(100);
            return false;
        }
    }

    function emailaddresscheck() {
        if ($("#email-address").val().length >= 6) {
            $("#email-address-check").fadeIn(100);
            return true;
        }
        else if ($("#email-address").val().length <= 5) {
            $("#email-address-check").fadeOut(100);
            return false;
        }
    }

    function customermessagecheck() {
        if ($("#customer-message").val().length >= 10) {
            $("#customer-message-check").fadeIn(100);
            return true;
        }
        else if ($("#customer-message").val().length <= 9) {
            $("#customer-message-check").fadeOut(100);
            return false;
        }
    }

    $(".email").click(function() {
        $("#email-form").dialog("open");
    });

    $("#first-name").keyup(firstnamecheck);
    $("#last-name").keyup(lastnamecheck);
    $("#area-code, #phone-prefix, #phone-postfix").keyup(phonenumbercheck);
    $("#email-address").keyup(emailaddresscheck);
    $("#customer-message").keyup(customermessagecheck);

    $("#customer-message").keyup(submitcheck); 
尝试使用以下方法:

firstnamecheck() == true & lastnamecheck() == true & phonenumbercheck() == true & emailaddresscheck() == true & customermessagecheck() == true
而不是

firstnamecheck() & lastnamecheck() & phonenumbercheck() & emailaddresscheck() & customermessagecheck() == true

你能试试这个吗?如果它有效的话,对你所有的功能都做同样的操作

function submitcheck() {
    if (firstnamecheck() && lastnamecheck() 
         && phonenumbercheck() && emailaddresscheck() 
         && customermessagecheck() === true) {
        $("#send").button("enable");
    }
}

$(".email").click(function() {
    $("#email-form").dialog("open");
});

function firstnamecheck() {
    if ($("#first-name").val().length >= 2) {
        $("#first-name-check").fadeIn(100);
        return true;
    }
    else if ($("#first-name").val().length < 2) {
        $("#first-name-check").fadeOut(100);
        return false;
    }
}

$("#first-name").keyup(firstnamecheck);

$("#customer-message").keyup(submitcheck);

您正在使用&而不是&&…请不要使用您未使用的插件来标记问题。删除了superflous标签。@Pointy:我两种方法都试过了。没有区别。$customer-message.keyup函数customer消息检查{没有创建一个名为customermessagecheck的函数。只需使用函数customermessagecheck等。所有这些检查函数声明在哪里?当您想要与true进行比较时,最好使用===@aguyfromhere:我看不出在submitcheck方法中使用customermessagecheck==true有什么意义。在每个检查中使用'==true',或者删除它。确实如此!我在上面发布了我的解决方案!非常感谢@NunoCarmo和其他人!@aguyfromhere你真的应该使用&&而不是&-它们不一样。它们在某些情况下看起来是一样的,但它们不是。