Javascript 为什么在onChange事件发生时不调用clear()函数?

Javascript 为什么在onChange事件发生时不调用clear()函数?,javascript,validation,Javascript,Validation,我正在完成一个关于Javascript表单验证的练习。 在我的代码中,我有一个包含三列的表:表单名称、表单、验证消息。 当表单验证期间发生错误时,消息将显示在第三列中。当表单元素被更改时,错误消息应该消失,但不会消失。似乎根本没有调用clear()函数。有人能帮帮我吗?谢谢 <html> <head> <title>Validation</title> <script type="text/javascript"> functi

我正在完成一个关于Javascript表单验证的练习。 在我的代码中,我有一个包含三列的表:表单名称、表单、验证消息。 当表单验证期间发生错误时,消息将显示在第三列中。当表单元素被更改时,错误消息应该消失,但不会消失。似乎根本没有调用clear()函数。有人能帮帮我吗?谢谢

<html>
<head>
<title>Validation</title>
<script type="text/javascript">
    function clear()
    {
        for(var i in document.getElementsByName("error"))
        {
            document.getElementsByName("error")[i].innerHTML = "";
        }
    }


    function validate()
    {
        if(document.Form.Name.value.length < 1)
        {
            document.getElementsByName("error")[0].innerHTML = "Please enter your full name."
            return false;
        }

        if(document.Form.Address.value.length<3)
        {
            document.getElementsByName("error")[1].innerHTML = "Please enter full address."
            return false;
        }

        if(document.Form.Phone.value.length <6)
        {
            document.getElementsByName("error")[2].innerHTML = "Please enter a phone number."
            return false;
        }

        if(document.Form.Email.value.length <5 || "@".search(document.Form.Email.value)==-1)
        {
            document.getElementsByName("error")[3].innerHTML = "Please enter a valid e-mail address";
            return false;
        }

    }
</script>
</head>
<body>
<h1>Validation</h1>
<p>Enter the following information. When you press the Submit button, the data you entered will be validated.</p>
<form name="Form" onSubmit="return validate()">
<table>
<tr>
    <td>Name</td>
    <td><input type="text" name="Name" size="20" onchange="clear()" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>Address</td>
    <td><textarea rows="5" columns="20" class="Form" onchange="clear()" name="Address"></textarea></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>Phone</td>
    <td><input type="text" name="Phone" onchange="clear()" size="11" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>E-mail</td>
    <td><input type="text" name="Email" onchange="clear()" size="20" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
</table>
<input type="submit" value="Submit" >
<input type="button" value="Clear" onClick="clear();">
</form>
</body>
</html>

验证
函数clear()
{
for(document.getElementsByName(“错误”)中的变量i)
{
document.getElementsByName(“错误”)[i].innerHTML=“”;
}
}
函数验证()
{
if(document.Form.Name.value.length<1)
{
document.getElementsByName(“错误”)[0]。innerHTML=“请输入您的全名。”
返回false;
}
如果(document.Form.Address.value.length),请尝试以下操作

 <html>
    <head>
<title>Validation</title>

</head>
<body>
<h1>Validation</h1>
<p>Enter the following information. When you press the Submit button, the data you entered will be validated.</p>
<form name="Form" onSubmit="return validate()">
<table>
<tr>
    <td>Name</td>
    <td><input type="text" name="Name" size="20" onkeypress="return clearErrors();" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>Address</td>
    <td><textarea rows="5" columns="20" class="Form" onkeypress="return clearErrors();" name="Address"></textarea></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>Phone</td>
    <td><input type="text" name="Phone" onkeypress="return clearErrors();" size="11" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
<tr>
    <td>E-mail</td>
    <td><input type="text" name="Email" onkeypress="return clearErrors();" size="20" class="Form"></td>
    <td><div name="error"></div></td>
</tr>
</table>
<input type="submit" value="Submit" >
<input type="button" value="Clear" onClick="return clearErrors();">
</form>
<script type="text/javascript">
    function clearErrors()
        { 

            var arr = new Array(); 
            arr = document.getElementsByName('error'); 
            for (var i = 0; i < arr.length; i++) { 
                document.getElementsByName('error')[i].innerHTML = "";

            }      
        return true;
    }


    function validate()
    {
        if(document.Form.Name.value.length < 1)
        {
            document.getElementsByName("error")[0].innerHTML = "Please enter your full name."
            return false;
        }

        if(document.Form.Address.value.length<3)
        {
            document.getElementsByName("error")[1].innerHTML = "Please enter full address."
            return false;
        }

        if(document.Form.Phone.value.length <6)
        {
            document.getElementsByName("error")[2].innerHTML = "Please enter a phone number."
            return false;
        }

        if(document.Form.Email.value.length <5 || "@".search(document.Form.Email.value)==-1)
        {
            document.getElementsByName("error")[3].innerHTML = "Please enter a valid e-mail address";
            return false;
        }

    }
</script>
</body>
</html>

验证
验证
输入以下信息。当您按下提交按钮时,您输入的数据将被验证

名称 地址 电话 电子邮件 函数clearErrors() { var arr=新数组(); arr=document.getElementsByName('error'); 对于(var i=0;i如果(document.Form.Address.value.length)尝试将clear方法重命名为其他方法(例如“clearErrors”)。似乎与内置函数存在名称冲突。