1

私はフォームバリデーターに取り組んでおり、下部にある関数 submitcheck を呼び出すと、if 条件が満たされておらず、起動してい$("#send").button("enable");ません。$("#send").button("enable");関数が呼び出され、起動した場合は意図したとおりに機能することを if ステートメントなしで確認しました。ここで何が間違っていますか?

    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 に答える