带有Javascript的HTML-验证不起作用
我有以下简单表单的HTML代码。如您所见,其中包含了验证功能。但当我尝试在没有@的情况下包含电子邮件地址时,它不会给出任何错误。因此验证失败了。如果有人能给出一些提示,那将非常有帮助 JavaScript带有Javascript的HTML-验证不起作用,javascript,html,validation,Javascript,Html,Validation,我有以下简单表单的HTML代码。如您所见,其中包含了验证功能。但当我尝试在没有@的情况下包含电子邮件地址时,它不会给出任何错误。因此验证失败了。如果有人能给出一些提示,那将非常有帮助 JavaScript <script language="Javascript"> function validate(){ var allok = true; if(useradd.1_New_User_Name_FirstLast__1.value == ""
<script language="Javascript">
function validate(){
var allok = true;
if(useradd.1_New_User_Name_FirstLast__1.value == ""){
alert('Invalid input for 1. New User Name (First,Last)');
return false;
}
if(useradd.2_unix_username__2.value == ""){
alert('Invalid input for 2. unix username');
return false;
}
if(useradd.3_CAT_client_Name__3.value == ""){
alert('Invalid input for 3. CAT client Name');
return false;
}
if(useradd.4_Email_Address__4.value.indexOf("") == -1){
alert('Invalid input for 4. Email Address, this must include "" character(s)');
return false;
}
if(useradd.7_Requesters_Name_FirstLast__7.value == ""){
alert('Invalid input for 7. Requesters Name (First,Last)');
return false;
}
document.useradd.Submit.disabled="disabled";
return true;
}
</script>
函数验证(){
var allok=真;
if(useradd.1\u New\u User\u Name\u FirstLast\u 1.value==“”){
警报('1.新用户名的输入无效(第一个,最后一个)';
返回false;
}
if(useradd.2\u unix\u username\u\u 2.value==“”){
警报(“2.unix用户名的输入无效”);
返回false;
}
如果(useradd.3\u CAT\u client\u Name\u 3.value==“”){
警报(“3.CAT客户端名称的输入无效”);
返回false;
}
if(useradd.4\u Email\u Address\u 4.value.indexOf(“”==-1){
警报('4.电子邮件地址的输入无效,必须包含“字符”);
返回false;
}
if(useradd.7\请求者\名称\首末次\值==“”){
警报('7.请求者名称的输入无效(第一个,最后一个)';
返回false;
}
document.useradd.Submit.disabled=“disabled”;
返回true;
}
HTML
<form name="useradd" method="Post" action="mailto:sholikar@yahoo.com" onSubmit="return validate();">
<table width="100%" border="2" cellpadding="5" cellspacing="0">
<tr>
<td>1. New User Name (First,Last):</td>
<td><input type="edit" name="1_New_User_Name_FirstLast__1" value="" size="20"></td>
</tr>
<tr>
<td>2. unix username:</td>
<td><input type="edit" name="2_unix_username__2" value="" size="10"></td>
</tr>
<tr>
<td>3. CAT client Name:</td>
<td><input type="edit" name="3_CAT_client_Name__3" value="" size="20"></td>
</tr>
<tr>
<td>4. Email Address:</td>
<td><input type="edit" name="4_Email_Address__4" value="" size="20"></td>
</tr>
<tr>
<td valign=top>5. Additional Access: </td>
<td valign=top>
<input type="checkbox" name="Xaccess__5" value="Yes">Xaccess<br>
<input type="checkbox" name="Samba__5" value="Yes">Samba<br>
<input type="checkbox" name="CVS_Access__5" value="Yes">CVS Access<br>
<input type="checkbox" name="Check-in_rights__5" value="Yes">Check-in rights<br>
</td>
</tr>
<tr>
<td>6. Additional requirement:</td>
<td><input type="edit" name="6_Additional_requirement__6" value="" size="20"></td>
</tr>
<tr>
<td>7. Requesters Name (First,Last):</td>
<td><input type="edit" name="7_Requesters_Name_FirstLast__7" value="" size="20"></td>
</tr>
<tr>
<td align="right"><input type="reset" name="Reset" value="Reset Form"></td>
<td align="left"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</form>
1.新用户名(第一个、最后一个):
2.unix用户名:
3.CAT客户端名称:
4.电邮地址:
5.其他访问:
Xaccess
桑巴舞
CVS访问
签入权限
6.附加要求:
7.请求者姓名(第一名、最后一名):
if(useradd.4\u Email\u Address\u 4.value.indexOf(“”==-1){
警报('4.电子邮件地址的输入无效,必须包含“字符”)
我想你的意思是把@放在这里?你只是在用
JS
和HTML
?还是把你的代码嵌入ASP或其他东西
它完全不受欢迎
我也不明白你的JS中的点符号:
useradd.1_New_User_Name_FirstLast__1
你应使用:
document.getElementById("foo").value;
您的问题是,输入名称以数字开头 例如:
...
<tr>
<td>1. New User Name (First,Last):</td>
<td><input type="edit" name="New_User_Name_FirstLast__1" value="" size="20"></td>
</tr>
...
应该可以解决您的问题。如果这些更改不可能(由于生成的表单或其他原因),您应该使用document.getElementById或HTML5表单验证
[编辑]
当然,电子邮件验证是错误的。请尝试以下操作:
.value.indexOf("@") == -1
它应该可以工作。那么你的代码在哪里检查电子邮件地址中的
@
字符呢?你好,克里斯蒂安。谢谢你的回复。我尝试了这些建议,但仍然不起作用。我在这里发布整段代码只是为了更好地理解…函数validate(){var allok=true;if(useradd.New\u User\u Name\u FirstLast\u 1.value==“”){alert('1.新用户名(First,Last)的输入无效);return false;}……document.useradd.Submit.disabled=“disabled”;return true;}新用户名(First,Last):对不起,它开始给出1.新用户名的第一个验证错误(当我没有插入文本时)但它不适用于后续领域。有什么想法吗?嘿,我想出来了……其他领域也必须做出类似的改变。因此,理想的解决方案是由Christian works提供。感谢大家。
.value.indexOf("@") == -1