日期:2014-05-16  浏览次数:20426 次

ie6可以,ie7不可以
目的是要求所有的输入都是数字

在ie经典模式或者搜狗浏览器中可以,但是在IE7中就会出现死循环


在d输入框中输入字母再按TAB键就会出现问题了。




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
function chk2(obj){

if(obj.value==""||obj.value.length>7|| isNaN(obj.value))
{
alert("请输入数字");
obj.focus();
return false;
}
else return true;
}

</script>
</head>

<body>
<form name="form${seq}" id="form${seq}" action="#" onsubmit="return validateV('form${seq}')">
<td><input type="text" name="jhllxs" id="jhllxs" value="" onblur="return chk('jhllxs')"></td>
<td><input type="text" name="jhsyxs" id="jhsyxs" value="d " onblur="return chk2(this)"></td>
<td><input type="text" name="jhsyxs2" id="jhsyxs2" value="k" onblur="return chk2(this)"></td>
<input type="submit" />
</form>
</body>
</html>


------解决方案--------------------
在"jhsyxs"失去焦点触发chk2()的同时"jhsyxs2"获取了焦点,判断过后"jhsyxs"会focus(),此时"jhsyxs2"又失去了焦点同时触发chk2()。。。
因此会反复触发chk2()。

最简单的方法是将jhsyxs和jhsyxs2的默认值设置成合法内容。
------解决方案--------------------
楼上的解释正确