IE6下,javascript控制input获取焦点时突出显示,异常
当我移动光标到下一个输入框,然后到最后一个:
可以看到,当输入框失去焦点,周围的border仍然存在。
代码如下:
JavaScript:
$().ready(function(){
if($.browser.msie){
var ie = $.browser.version;
if(ie=="6.0"){
$("input").each(function(){
$(this).focus(function(){
$(this).addClass("inputFocusIE");
});
$(this).blur(function(){
$(this).removeClass("inputFocusIE");
});
});
}
}
});css:
.inputFocusIE{
border:expression( (this.type=="text" ||this.type=="password") ?"1px solid rgb(250,210,20)" :"none");
}再此,我将我调试的过程简单的说一下:
1.我在blur事件中增加过输出,得到的结果是blur能事件正常触发。
2.我在blur事件中尝试过不removeClass,而是更改掉border的颜色。这个可以成功,但是,新的问题是,当重新获取焦点的时候,就addClass不上了。
3.同样的,不是改border颜色,而设border为none,也是再也addClass不上了,不过关于这点,我见过有人说IE6下的border设为none之后,的确是无法在设值了。
我在网上搜素过,对于这个IE6下获取焦点突出显示的问题,大部分是用focus和blur事件来做的,但实在没见过有人说这个removeClass跟IE6不兼容的。实在奇怪,望高手指点。 JavaScript IE6 CSS
[解决办法]
<!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=utf-8" />
<script type="text/javascript" src="../artDialog/jquery-1.7.1.min.js"></script>
<title>无标题文档</title>
<script type="text/javascript">
$(function(){
alert($("input[type='text']").length);
alert($(":input").length);
alert($(":text").length);
})
</script>
</head>
<body>
<input type="text" class="class1" />
<input type="text" class="class2" />
<input type="text" class="class3" />
</body>
</html>
经测试是可以的呢,可以获取到html控件!
你jquery是什么版本?