このコードを使用してフォームを検証しています:
if (isEmpty(email)) {
alert("1");
return false;
}
else if (!isEmail(email)) {
alert("2");
return false;
}
if (isEmpty(name)) {
alert("3");
return false;
}
if (isEmpty(age)) {
alert("4");
return false;
}
else if (!isAge(age)) {
alert("5");
return false;
}
if (isEmpty(city)) {
alert("6");
return false;
}
if (isEmpty(comments)) {
alert("7");
return false;
}
「送信」ボタンを押すと、最初の2つの条件が機能するかどうか(電子メール変数が空であるか、電子メールアドレス形式ではないかを確認する条件)-電子メール入力を空のままにするか、電子メールアドレス形式ではないことを意味しますアラートが表示されます (1 または 2)。
問題は、残りの検証がスキップされ、別の入力を空のままにするかどうかは問題ではありません。
また、最初の IF ブロックを使用すると、次のようになります。
if (isEmpty(email)) {
alert("1");
return false;
}
else if (!isEmail(email)) {
alert("2");
return false;
}
それを検証ブロックの最後に移動すると、すべてが正常に機能します。
どこかで構文が間違っていると思いますが、2時間かけて探したのですが、見つかりませんでした。
PS
私が使用している2つの検証関数は次のとおりです。
function isEmpty(field) {
if ((field == null || field == "")) {
return true;
}
return false;
}
function isEmail(field) {
var atpos = field.indexOf("@");
var dotpos = field.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
return false;
}
}