<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>学生信息管理系统--登录</title>
<link type="text/css" rel="Stylesheet" href="css/index.css" />
<script type="text/javascript" src="js/utils.js"></script>
<script type="text/javascript">
function checkUserid(form){
var status = document.getElementById("error");
if (form.value.length == 0) {
status.innerHTML = "请输入用户名";
window.setTimeout(   function(){   form.focus();   },   0);
} else {
status.innerHTML = "";
}
}
function checkPassword(form){
var status = document.getElementById("error");
if (form.value.length == 0) {
status.innerHTML = "请输入密码";
window.setTimeout(   function(){   form.focus();   },   0); 
} else {
status.innerHTML = "";
}
}
</script>
</head>
<body onload="document.getElementById('userid').focus()">
<div id="banner">学生信息管理系统</div>
<div id="error"></div>
<div id="loginDiv">
<form id="loginForm" name="loginForm" action="LoginServlet" method="post">
<table>
<tr>
<td>学号</td>
<td><input id="userid" type="text" name="userid" size="15" onblur="checkUserid(this)" /></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" size="15" onblur="checkPassword(this)" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="重填"><br />
<a href="register.jsp">注册</a></td>
</tr>
</table>
</form>
</div>
</body>
</html>以上代码在两个文本框都为空的时候会产生死循环呢,请问怎么解决,谢谢

解决方案 »

  1.   

    onblur之后你又让它focus,你说是不是死循环? 
    你做个表单验证至于这样吗?
      

  2.   

    window.setTimeout(   function(){   form.focus();   },   0); 
    去掉这行或用onchange事件
      

  3.   

    在firefox中onblur后再使用focus()不能使文本框获得焦点,那怎么解决才能既可以让文本框获得焦点而又不出现循环
      

  4.   

    页面加载的时候你两个文本框本来就是onblur的,支持楼上的改为onchange