我正在尝试验证带有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>
答案 0 :(得分:2)
你正以错误的方式接近它。可能发生的是在点击登录按钮后提交你的for,这就是为什么文本会在几秒钟内“消失”。
将您的登录检查放在服务器端,并为该特定方案生成HTML内容,而不是使用JavaScript。
BTW:您使用的<button>
标签是什么?
答案 1 :(得分:2)
使用<button>
标记时,“type”属性很重要:大多数浏览器(正确地)将类型默认为“submit”,这使其可以作为表单提交元素使用。您可以将类型设置为“按钮”,这使得按钮除了触发事件处理程序之外没有本机行为。因此:
因此:
<button onclick="check()" type=button>Submit</button>
将使按钮不会导致隐式提交表单。