1

我正在开发一个表单验证器,当我在底部调用函数 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); 
4

2 回答 2

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);
于 2013-02-17T17:52:45.577 回答
-2

尝试使用这个:

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

代替

firstnamecheck() & lastnamecheck() & phonenumbercheck() & emailaddresscheck() & customermessagecheck() == true
于 2013-02-17T17:39:06.723 回答