Javascript中的.innerHTML

时间:2011-10-29 12:31:27

标签: javascript validation innerhtml

我正在尝试验证带有div的登录页面以显示错误,我正在使用innerHTML来更改div中的空文本并发生错误,问题是错误消息写入并消失只是在第二个

这是代码

<html>
<head>
<title>
    Sign up for a membership @ Ay 7aga.com
</title>
<script type="text/javascript">
function check(){
var x = "";
if(document.getElementById('user').value =="")
    x+="Enter user name -";
if(document.getElementById('password').value =="")
    x+="Enter password";
document.getElementById('error1').innerHTML = x;

}
</script>
</head>
<body>
<div name="error" id="error" style="width:1200px;background-color:red"> 
<p name="error1" id="error1"> 
</div>
<center>
<br/>
<form name="register" id="register" >
    <table>
        <tr>
        <td> UserName </td>
            <td> <input type="text" id="user" /> </td>
        </tr>
        <tr>
            <td> Password </td>
            <td> <input type="password" name="password" id="password"/></td>
        </tr>

    </table>
    <button onclick="check()"> Submit </button>
</form>
<a href="Home page.html"> Go to Home page </a>
</center>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

你正以错误的方式接近它。可能发生的是在点击登录按钮后提交你的for,这就是为什么文本会在几秒钟内“消失”。

将您的登录检查放在服务器端,并为该特定方案生成HTML内容,而不是使用JavaScript。

BTW:您使用的<button>标签是什么?

答案 1 :(得分:2)

使用<button>标记时,“type”属性很重要:大多数浏览器(正确地)将类型默认为“submit”,这使其可以作为表单提交元素使用。您可以将类型设置为“按钮”,这使得按钮除了触发事件处理程序之外没有本机行为。因此:

因此:

<button onclick="check()" type=button>Submit</button>

将使按钮不会导致隐式提交表单。