从JQuery函数传递给另一个函数?

时间:2013-02-17 17:24:45

标签: jquery validation

我正在使用表单验证器,当我在底部调用函数submitcheck时,if条件未得到满足并且$("#send").button("enable");未触发。我已经确认没有if语句,函数确实被调用,如果$("#send").button("enable");触发,它按预期工作。我在这里做错了什么?

    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); 

2 个答案:

答案 0 :(得分:1)

你可以尝试这个吗?如果它能够正常运行你的每个功能。

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);

答案 1 :(得分:-2)

尝试使用:

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

而不是

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