我正在尝试使用 javascript 验证 HTML 表单,但由于没有弹出警报,我认为我的 checkSubmit() 函数没有被调用。但是,在函数开头添加附加警报后,它确实会触发,但在检查第一个条件后没有弹出进一步的警报。
<script language="javascript" type="text/javascript">
function checkSubmit() {
alert("Hello from Javascript!");
if (document.getElementById("user").value.toString.length <1) {
alert("Please enter a user name.");
return false;
}
if (document.getElementById("location").value.toString.length <1) {
alert("Please enter a location.");
return false;
}
if (document.getElementById("depart").value.toString.length <1) {
alert("Please enter a department.");
return false;
}
if (document.getElementById("category").value.toString.length <1) {
alert("Please enter a problem type.");
return false;
}
if (document.getElementById("info").value.toString.length <1) {
alert("Please enter a problem description.");
return false;
}
alert("Hello from Javascript2!");
return true;
}
</script>
<form name="submit" type="submit" method="POST" onsubmit="return checkSubmit();">
[...]
<input type="submit" name="submit" value="Submit" >
</form>
除非我犯了一个错误(我确信事后看来会很明显),否则无论任何条件是真还是假,难道不应该弹出第二个警报吗?
最佳答案
您不需要 toString
因为 .value
已经是一个字符串,而且您无论如何都错误地使用了它 - 您需要说 .toString ()
。事实上,它返回函数定义,因此 .length
将是 0
。正如您所说,您需要正确设置每个框的 id
属性。
function checkSubmit() {
if (document.getElementById("user").value.length < 1) {
alert("Please enter a user name.");
return false;
}
if (document.getElementById("location").value.length < 1) {
alert("Please enter a location.");
return false;
}
if (document.getElementById("depart").value.length < 1) {
alert("Please enter a department.");
return false;
}
if (document.getElementById("category").value.length < 1) {
alert("Please enter a problem type.");
return false;
}
if (document.getElementById("info").value.length < 1) {
alert("Please enter a problem description.");
return false;
}
return true;
}
关于javascript - 检查条件后表单验证不发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528637/