Как сделать код предупреждения Javascript на одной строке

Я пытаюсь выяснить, как сделать код оповещения "Имя и фамилия должны быть заполнены", если в обоих полях формы нет информации. Я знаю, как сделать их по отдельности, но как сделать код предупреждения для обоих сообщений, объединенных в одну строку? Я довольно новичок в Javascript..

    <!DOCTYPE html>
<html>
<head>
<script>
function validateForm() {
    var x = document.forms["myForm"]["fname"].value;
    var y = document.forms["myForm"]["lname"].value;
    if (x == null || x == "") {
        alert("First Name is missing information");
        return false;
    }
    else (y == null || y == "") {
        alert("Last Name is missing information")
        return false;
    }
    else (x == null || x == "" && y == null || y == "") {
        alert("First and Last name are missing information")
        return false;
    }
}
</script>
</head>
<body>

<form name="myForm" action="demo_form.asp"
onsubmit="return validateForm()" method="post">
First Name: <input type="text" name="fname"><br>
Last Name:  <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form>

</body>
</html>

3 ответа

Удалить все ваши JavaScript.

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form action="demo_form.asp" method="post">
  First Name: <input type="text" name="fname" required /><br />
  Last Name:  <input type="text" name="lname" required /><br />
  <input type="submit" value="Submit" />
</form>

</body>
</html>

Обратите внимание на required атрибут на форме.

Не используйте JavaScript для выполнения работы HTML.

Ваша логика должна быть обращена вспять, чтобы сначала проверялся случай, когда оба значения равны нулю, иначе код никогда не дойдет до него, потому что x или же y Дело случается первым. Пытаться:

var x = document.forms["myForm"]["fname"].value;
var y = document.forms["myForm"]["lname"].value;
var emptyX = x == null || x == "";
var emptyY = y == null || y == "";
if (emptyX && emptyY) {
    alert("First and Last name are missing information")
    return false;
}
else (emptyX) {
    alert("First Name is missing information");
    return false;
}
else (emptyY) {
    alert("Last Name is missing information")
    return false;
}

Вы должны перенести свой финал else Заявление наверх. Поскольку ваш код в настоящее время существует, оба поля не будут проверены, если окажется, что имя или фамилия пусты.

Кроме того, вы можете добавить логику в каждом из x а также y проверить, не является ли другой пустой, но это не обязательно, если вы просто переверните код.

Другие вопросы по тегам