如何使Javascript警报代码全部在一行上

How to make Javascript alert code all on one line

本文关键字:一行 全部 Javascript 何使 代码      更新时间:2023-09-26

如果表单的两个字段都没有插入信息,我正在尝试弄清楚如何使警报代码"必须填写名字和姓氏"。我知道如何单独执行它们,但是您如何将两条消息合并在一行上制作警报代码?我对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>

删除所有 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 的工作。

您的逻辑需要颠倒过来,以便首先检查两者都为 null 的情况,否则代码将永远无法到达它,因为xy情况首先发生。尝试:

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语句移到顶部。由于您的代码当前存在,如果发现名字或姓氏为空,则不会检查这两个字段。

或者,您可以在每个xy中添加逻辑,以检查另一个是否为空,但如果您只是反转代码,则不需要这样做。