私はフォームバリデーターに取り組んでおり、下部にある関数 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);