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