用jQuery解决IE不支持的option disable属性


在IE浏览器中,给select的options设置 disable属性 是没用的。

必须采用一定手段才可以解决这个问题。当然原理就是记住上次选中的 option。
this.selectedIndex 就派上用场了。
需要刷新下才可以看到效果,因为输出的都是文本,不存在js加载的情况。



<!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> 
<title> 使用jQuery解决IE不支持的option disable属性 </title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<script src="http://img.jb51.net/jslib/jquery/jquery-1.3.2.min.js" type="text/javascript"></script> 
<script> 
$(document).ready(function(){ 
$(".myselect option:disabled").css('color', '#CCC'); 
$('.myselect').change(function(){ 
     if(this[this.selectedIndex].disabled){ 
        this.selectedIndex = this.s||0; 
     }else{ 
        this.s = this.selectedIndex||0; 
     } 
}) 
}) 
</script> 
</head> 
<body> 
<h1>使用jQuery解决IE不支持的option disable属性</h1> 

普通: 
<select> 
    <option>第1项</option> 
    <option disabled="disabled">第2项</option> 
    <option>第3项</option> 
    <option disabled="disabled">第4项</option> 
    <option >第5项</option> 
    <option >第6项</option> 
</select> 

对比1: 
<select class="myselect"> 
    <option>第1项</option> 
    <option disabled="disabled">第2项</option> 
    <option>第3项</option> 
    <option disabled="disabled">第4项</option> 
    <option >第5项</option> 
    <option >第6项</option> 
</select> 

对比2: 
<select class="myselect"> 
    <option>第1项</option> 
    <option disabled="disabled">第2项</option> 
    <option>第3项</option> 
    <option disabled="disabled">第4项</option> 
    <option >第5项</option> 
    <option >第6项</option> 
</select> 


<p style="margin-top:200px;font-size:12px;">Dev By CssRain,当然你有兴趣,也可以封装成插件。记得发我一份哦。</p> 
</body> 
</html> 

你可能感兴趣的:(jquery)