我需要使用 JavaScript 验证表单,并且需要同时显示所有消息。例如,如果缺少名字和姓氏,则会出现两条消息。我已经使用下面的代码解决了这个问题,但表单仍然被返回到服务器。 P 租赁见下文:
function validateForm() {
var flag = true;
var x = document.forms["myForm"]["firstname_4"].value;
if (x == null || x == "") {
document.getElementById("fNameMessage").innerHTML = "First name is required";
flag = false;
} else {
document.getElementById("fNameMessage").innerHTML = "";
}
var x = document.forms["myForm"]["surname_5"].value;
if (x == null || x == "") {
document.getElementById("sNameMessage").innerHTML = "Surename is required";
flag = false;
} else {
document.getElementById("sNameMessage").innerHTML = "";
}
var y = document.forms["myForm"]["selectid"];
if (y.options[y.selectedIndex].value == "Title") {
document.getElementById("titleMessage").innerHTML = "You need to select a title";
flag = false;
} else {
document.getElementById("titleMessage").innerHTML = "";
}
return flag;
}
我的表格和事件:
<form action=""method="post" accept-charset="UTF-8" name="myForm" onsubmit="return validateForm();">
我的按钮:
<input type="submit" class="button" name="submit" id="submit" value="Submit">
最佳答案
您的代码:
var y = document.forms["myForm"]["selectid"];
if (y.options[y.selectedIndex].value == "Title")
...触发异常但您没有捕获它:
Uncaught TypeError: Cannot read property 'options' of undefined
因此 JavaScript 代码停止运行。
关于javascript - 返回 false 不会阻止表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22458876/