IE中Option的disabled无效解决方法

本文介绍了一种在Internet Explorer浏览器中通过JavaScript脚本来模拟HTML Option元素的禁用效果的方法,该方法能够使Option项在IE中的表现接近Firefox等现代浏览器的效果。
摘要由CSDN通过智能技术生成

今天在做东西的时候,想到给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";
        }

    }

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值