我的 JavaScript 无法正常工作。这是简单的预验证表单,我无法让脚本运行。它应该验证每个字段,但我无法让它验证名字之后的内容。我删除了所有其他垃圾,这样代码就不会混淆应该是复制粘贴到记事本。请提供一点帮助
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" type="text/javascript">
<!--
function validateForm(theForm) {
var name = theForm.firstname.value;
var name = theForm.lastname.value;
var email = theForm.email.value;
if (name == "") {
alert("Please fill in your First Name.");
theForm.firstname.focus();
return false;
}
if (name == "") {
alert("Please fill in your Last Name.");
theForm.lastname.focus();
return false;
}
if (email == "") {
alert("Please fill in your email address.");
theForm.email.focus();
return false;
}
return true;
}
//-->
</script>
if (!theForm.myCheckbox1.checked {
alert("Please check the honor box.");
return false;
}
</head>
<body>
</script>
<fieldset>
<legend>Fun in the Sun With JavaScript</legend>
<ul>
<form action="blah.cgi" method="post"
onSubmit="return validateForm(this);">
First name: <input type="text" name="firstname"> <font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br>
Last name: <input type="text" name="lastname"> <font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br>
Email address: <input type="text" name="email"> <font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <br><br>
Phone Number: <input type="text" name="phone"><br><br>
<input type="submit" name="submit" value="Submit">
</form>
<input type="checkbox" name="myCheckbox" value="someValue"><font color="#FF0000" size="1" face="Arial, Helvetica, sans-serif"><strong>*</strong></font> <P>By checking this Box you are confirming the data is accurate</p>
<p>(* indicates a required field)</p>
</body>
</html>
最佳答案
您正在声明 2 个名为 name 的变量,这可能是问题所在。
更改变量名称,如下所示:
var firstName = theForm.firstname.value;
var lastName = theForm.lastname.value;
不要忘记使用这些变量名称更新其余代码
编辑:
当您终止流程以免到达下一个 block 时,您可能还需要检查这些 return
语句。
我也喜欢@psuphish05对此部分的建议
关于JavaScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2660910/