读书人

IE6下javascript控制input获取焦点时

发布时间: 2013-07-09 09:50:47 作者: rapoo

IE6下,javascript控制input获取焦点时突出显示,异常


当我移动光标到下一个输入框,然后到最后一个:
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
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

expression( (this.type=="text"
[解决办法]
this.type=="password") ?"1px solid rgb(250,210,20)" :"none");
}

这表达式的问题,IE6好像地这种写法是不兼容的,我记得好像是这个表达式比较耗资源,有时候可以,有时候不可以,不稳定。建议还是分开写!不要用这种表达式的形式!


求指教!!
Ie6不支持对input type的选择器啊
input[type='text']
$(':text')
这两种都IE6里都不支持。那要怎么办啊?



IE6下,javascript控制input获取焦点时突出显示,错误
不会吧!
我去写个例子试试!





<!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是什么版本?

读书人网 >JavaScript

热点推荐