JavaScript 问题

标签 javascript

我的 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/

相关文章:

javascript - ES6 JS 中的扩展语法如何作为函数参数工作?

javascript - 是否可以在 ES6 模块导入中使用子资源完整性?

javascript - jQuery .after() 在 IE 中不工作

javascript - 连接尚未完全初始化

javascript - 在不使用 HTML 的情况下通过 Javascript 添加 jquery datatables 表页脚

javascript - Dropzone 手动删除上传的文件

javascript - 如何创建需要 uib Typeahead 的 Angular 1.5 自定义指令

javascript - Chrome 扩展程序 : Schema "file://" not allowed in "permissions"

javascript - Node.js 错误,包括 js 文件 - 找不到文件

JavaScript 正则表达式