Javascript 下IE8使用 onblur事件导致浏览器崩溃、Firefox、Chrome浏览器测试正常。 如何解决?

代码如下:functionnameValidate(){varname=document.getElementById("emp_user").value;varErrn... 代码如下:
function nameValidate()
{
var name=document.getElementById("emp_user").value;
var Errname=document.getElementById("Errname");
var exr=/^[a-zA-Z\d]\w{3,11}[a-zA-Z\d]$/;
var bool=name.search(exr);
if(name=="" ||name==null)
{
Errname.innerHTML="<font color='red'><img src='images/Error.png'></img><b>请输入用户名!</b></font>";
document.getElementById("emp_user").focus();
return false;
}
if(bool==-1)
{
Errname.innerHTML="<font color='red'><img src='images/Error.png'></img><b>6~18个字符,包括字母、数字、下划线,以字母开头,字母或数字结尾!</b></font>";
document.getElementById("emp_user").value='';
return false;
}
else
{
document.getElementById("Errname").innerHTML="";
return true;
}
}

function emp_passValidate()
{
emp_pass=document.getElementById("emp_pass").value;
Erremp_pass=document.getElementById("Erremp_pass");
if(emp_pass==""||emp_pass==null)
{
Erremp_pass.innerHTML="<font color='red'><img src='images/Error.png'><b>请输入密码!</b></font>";
document.getElementById("emp_pass").focus();
return false;
}
if(emp_pass.length<6)
{
Erremp_pass.innerHTML="<font color='red'><img src='images/Error.png'><b>登录密码应大于6个字符!</b></font>";
document.getElementById("emp_pass").focus();
return false;
}
if(emp_pass.length>20)
{
Erremp_pass.innerHTML="<font color='red'><img src='images/Error.png'><b>登录密码应小于20个字符!</b></font>";
document.getElementById("emp_pass").focus();
return false;
}
else
{
Erremp_pass.innerHTML="<font color='green'><img src='images/Right.png'><b>√ 填写正确!</b></font>";
return true;
}
}

function re_PasswordValidate()
{
var re_Password=document.getElementById("re_Password").value;
var Errre_Password=document.getElementById("Errre_Password");
if(re_Password=="" || re_Password==null)
{
Errre_Password.innerHTML="<font color='red'><img src='images/Error.png'><b>请再次输入密码!</b></font>";
document.getElementById("re_Password").focus();
return false;
}
if(re_Password!=emp_pass)
{
Errre_Password.innerHTML="<font color='red'><img src='images/Error.png'><b>两次输入的密码不一致!</b></font>";
document.getElementById("re_Password").select();
return false;
}
else
{
Erremp_pass.innerHTML="<font color='green'><img src='images/Right.png'><b>√ 填写正确!</b></font>";
return true;
}
}

function checkForm()
{
if(!nameValidate() ||!emp_passValidate() || !re_PasswordValidate())
{
alert('aaaaa');
return false;
}
else
{
return true;
}
}
</script>
<td width="35%" colspan="2" bgcolor="#E8F1FF"> 
<font size="2">
<input name="emp_pass" type="password" id="emp_pass" size="20" onblur="emp_passValidate();">
<span id="Erremp_pass"></span>
</font></td>
展开
 我来答
百度网友55df3f4
2011-06-22 · TA获得超过211个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:184万
展开全部
为啥要把机子整那么累!
若emp_pass和re_Password都用onblur事件的话,
分别点击俩个密码框,它们都会抢着聚焦(造死循环)

修改为试试。
var emp_pass=document.getElementById("emp_pass").value;
var Erremp_pass=document.getElementById("Erremp_pass");
//document.getElementById("emp_pass").focus();
//document.getElementById("re_Password").focus();
//document.getElementById("re_Password").select();
...
if(re_Password!=document.getElementById("emp_pass").value)
...
<input name="emp_pass" type="password" id="emp_pass" size="20" onblur="emp_passValidate();">
<span id="Erremp_pass"></span><br>
<input type="password" id="re_Password" onblur="re_PasswordValidate();">
<span id="Errre_Password"></span><br>
<input type="text" ><br>
火狐
2014-09-14 · Firefox,最快最安全的上网体验
火狐
Mozilla Firefox火狐浏览器,是一款开放安全的开源浏览器,全球拥有5亿用户。
向TA提问
展开全部
  您好!很高兴为您答疑!

  把foucs()去掉,emp_pass和re_Password都用onblur事件的话,分别点击俩个密码框,它们都会抢着聚焦。
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式