IE中Option的disabled无效解决方法

来源:互联网 发布:远程协作软件 编辑:程序博客网 时间:2024/06/01 09:13

今天在做东西的时候,想到给option项添加disabled的禁用功能,没想到竟然有属性却无效的。。。不过firefox里倒是有效,无奈,IE虽然差劲,但PC毕竟还是微软的天下。。。。还是要适应IE阿。。。

网罗了一下资料,发现一个不错的脚本,那来用了下,感觉不错,基本可以跟firefox里的效果媲美了,而且代码也不多

代码如下:
(为了注重版权问题,这里就没把原注释删除)

/****************************************************************
* Author:   Alistair Lattimore
* Website:  http://www.lattimore.id.au/
* Contact:  http://www.lattimore.id.au/contact/
*           Errors, suggestions or comments
* Date:     30 June 2005
* Version:  1.0
* Purpose:  Emulate the disabled attributte for the
* element in Internet Explorer.
* Use: You are free to use this script in non-commercial
* applications. You are however required to leave
* this comment at the top of this file.
* * I'd love an email if you find a use for it on your
* site, though not required.
***************************************************************
*/
 
window.onload 
= function() 
{
    
if (document.getElementsByTagName)
    
{
        
var s = document.getElementsByTagName("select");
        
if (s.length > 0)
        
{
            window.select_current 
= new Array();
            
for (var i=0, select; select = s[i]; i++)
            
{
                select.onfocus 
= function()
                
{
                    window.select_current[
this.id] = this.selectedIndex;
                }

                select.onchange 
= function()
                
{
                    restore(
this);
                }

                emulate(select);
            }

        }

    }

}


function restore(e)
{
    
if (e.options[e.selectedIndex].disabled)
    
{
        e.selectedIndex 
= window.select_current[e.id];
    }

}


function emulate(e)
{
    
for (var i=0, option; option = e.options[i]; i++)
    
{
        
if (option.disabled)
        
{
            option.style.color 
= "graytext";
        }
else{
            option.style.color 
= "menutext";
        }

    }

}