我有简单表单的以下HTML代码。如您所见,包含验证功能。但是,当我试图包含没有@的电子邮件地址时,它不会给出任何错误。因此验证失败了。如果有人可以提供一些提示,那将非常有用。
的JavaScript
<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>
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>
答案 0 :(得分:1)
if(useradd.4_Email_Address _4.value.indexOf(“”)== -1){ alert('4.电子邮件地址无效输入,必须包含“”字符');
我认为你打算把@放在“”这里?
答案 1 :(得分:0)
您是否只使用JS
和HTML
?或者你是否在ASP或其他东西中嵌入你的代码?
<script language="Javascript">
它完全被弃用了。
我也不理解你的JS中的点符号:
useradd.1_New_User_Name_FirstLast__1
您应该使用:
document.getElementById("foo").value;
答案 2 :(得分:0)
您的问题是,输入名称以数字开头。
例如:
...
<tr>
<td>1. New User Name (First,Last):</td>
<td><input type="edit" name="New_User_Name_FirstLast__1" value="" size="20"></td>
</tr>
...
和
...
if(useradd.New_User_Name_FirstLast__1.value == ""){
alert('Invalid input for 1. New User Name (First,Last)');
return false;
}
...
应该解决你的问题。如果这些更改不可能(由于生成的表单或其他内容),您应该使用document.getElementById或HTML5表单验证。
[编辑]
当然,电子邮件验证是错误的。试试这个:
.value.indexOf("@") == -1
它应该有用。