HTML与Javascript -验证不起作用

HTML with Javascript - Validation does not work

本文关键字:验证 不起作用 Javascript HTML      更新时间:2023-09-26

我有以下简单表单的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>

<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>

如果(useradd.4_Email_Address__4.value.indexOf (" ") = = 1) {输入4无效。电子邮件地址,必须包含"字符;

我想你是想把@放在这里的"?

您的问题是,输入名称以数字开头。

,例如:

...
<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表单验证。

[编辑]

当然,E-Mail Validation是错误的。试试这个:

.value.indexOf("@") == -1

您是否只与JSHTML一起工作?还是将代码嵌入到ASP或其他东西中?

<script language="Javascript">已完全弃用

我也不明白你的JS中的点符号:

useradd.1_New_User_Name_FirstLast__1

你应该使用:

document.getElementById("foo").value;