`

IE8/IE7/IE6下Select列表中disabled的使用

阅读更多
昨天项目中使用select列表list-to-list,其中右边有一项是不可以让用户选中,就是必须选,我使用了selectedFields.options[0].disabled = 'disabled';或者selectedFields.options[0].disabled = true;在IE8下面是正常的,不可选的,但在IE6和IE7下没有起到作用,试了几种方法都不行,最后在网上找到下面代码,只要copy到你的js文件里,然后使用上面的disabled就可以做到不可选的效果了。
有用到可以看看:
/****************************************************************
* 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 <option> 
*			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++) {
if(select.id == "your select id") {[//你的select id
select.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
				select.onchange = function(){ restore(this); }
				emulate(select);
			[color=red]}[/color]}
		}
	}
}

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";
		}
	}
}

分享到:
评论
2 楼 yaofeng911 2009-09-23  
f0799 写道
如果在select 中添加onchange="" 将会无效,请问怎么解决啊·~?如下代码
<select id="s1" onchange="alert(this.selectedIndex);">
  <option value="p1" >p1</option>
  <option value="p2" >P0</option>
  <option value="p3" >P3</option>
  <option value="p4" >P4</option>
</option>
onchange方法被select-option-disabled-emulation.js代码中select.onchange = function(){ restore(this); } 覆盖

你要使用onchange事件是话,可能只有把select-option-disabled-emulation.js代码换成其它事件类似替代它。可以试试看先...
1 楼 f0799 2009-09-23  
如果在select 中添加onchange="" 将会无效,请问怎么解决啊·~?如下代码
<select id="s1" onchange="alert(this.selectedIndex);">
  <option value="p1" >p1</option>
  <option value="p2" >P0</option>
  <option value="p3" >P3</option>
  <option value="p4" >P4</option>
</option>
onchange方法被select-option-disabled-emulation.js代码中select.onchange = function(){ restore(this); } 覆盖

相关推荐

    IE6中select标签的option不能disabled的解决方案

    在早期的Internet Explorer 6(简称IE6)浏览器中,存在一个众所周知的兼容性问题:`&lt;select&gt;`标签内的`&lt;option&gt;`元素无法正确地应用`disabled`属性。这个问题使得开发者无法在IE6中实现禁用某些选项的功能,这对于...

    select-option-disabled-emulation.zip_OPTION_select option_select

    select-option-disabled-emulation.js解决IE6 Select 中 option 的disabled属性无效的办法~~~在页面加载时架子该js,呵呵有点问题:onchange 时间冲突 自己改改··

    如何使用JS获取IE上传文件路径(IE7,8)

    在IE7和IE8中,我们可以使用`fileupload.select()`和`document.selection.createRange().text`来获取文件路径。 ```javascript if (isIE7 || isIE8) { fileupload.select(); filepath = document.selection....

    SELECT在浏览器中相关Bug整理

    在IE7及以下 虽然disabled 对 select能起作用,但对select下的option却无效。 解决方法通常是判断浏览器,如果是IE7以下的话,则当change和focus时改变option颜色和并且点击“无效”的option后 select选中的项值不...

    bootstrapselect下拉框js,css

    要使用 Bootstrap Select,首先确保你已经在项目中引入了 Bootstrap 的 CSS 和 JS 文件,以及 jQuery 库。Bootstrap Select 需要依赖这两个库才能正常工作。然后,你需要引入 Bootstrap Select 的 CSS 和 JS 文件。...

    html5+css3 select

    6. **自定义下拉箭头**:在某些情况下,我们可能希望替换默认的下拉箭头。这可以通过CSS的`content`属性结合`::after`或`::before`伪元素实现。 然而,需要注意的是,由于浏览器之间的差异,实现跨浏览器的兼容性...

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

    在大多数现代浏览器中,`disabled`属性可以用来禁用一个下拉列表中的选项,使其无法被用户选择。然而,Internet Explorer(尤其是早期版本)并不完全支持这个特性,导致设置`disabled`的`&lt;option&gt;`元素依然可以被...

    javascript中select下拉框的用法总结

    在JavaScript中,`&lt;select&gt;`元素是网页表单中常用的组件,用于创建下拉列表供用户选择。本文将详细介绍`select`下拉框的用法,以及在实际开发中如何与后台进行数据交互。 ### 1. 获取选中的option值 当用户在...

    无聊的文档

    Form对象是HTML `&lt;form&gt;` 标签在JavaScript中的表示,每当在HTML文档中使用一次`&lt;form&gt;`标签,就会创建一个Form对象。这个对象包含了表单内所有控件的信息,如文本框、按钮、下拉列表等。通过Form对象,我们可以对...

    js禁止Backspace键使浏览器后退的实现方法.docx

    - **问题**:在使用select下拉列表的情况下,即使绑定了`banBackSpace`函数,当select列表展开后,Backspace键依然能够使浏览器后退。 - **解决策略**:一种可行的解决方案是使用第三方库,如EasyUI的combobox代替...

    Bootstrap select下拉联动(jQuery cxselect)

    在这个场景中,我们使用的是一款基于jQuery的插件——cxselect,它简化了在Bootstrap环境下实现下拉联动的复杂性。 cxselect插件的引入需要两个基本的JavaScript库:jQuery和cxselect自身。首先,你需要在HTML文件...

    CCS文本框禁止拖拽和粘贴

    在IE浏览器中,通过设置`ime-mode`为`disabled`,可以禁用IME,间接达到阻止粘贴的效果。然而,需要注意的是,`ime-mode`属性并不被所有现代浏览器所支持,因此其适用性有限。 #### JavaScript事件处理 为了在更...

    JS实现省级联动菜单

    在网页开发中,省级联动菜单是一种常见的交互设计,它允许用户在选择省份后,自动更新市、区(县)的下拉选项,提供更精确的选择范围。这种功能通常由JavaScript(JS)实现,配合HTML和CSS来完成。下面将详细解释...

    js使用小技巧

    无关闭按钮IE window.open("aa.htm", "meizz", "fullscreen=7"); 统一编码/解码 alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) encodeURIComponent对":"、"/"、";" 和 "?"也编码 ...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -重命名AccordionPanel为AccordionPane (这也是在Asp.net AJAX中使用的名称). +所有的面板默认有两个集合属性(Toolbars和Items). -尽管TabStrip, From, Tree, Accordion继承了Items属性,但是你并不能对其设置...

    Javascript

    使用 `&lt;input style="ime-mode:disabled"&gt;` 可以关闭输入法。 8. 永远都会带着框架 使用 `&lt;script language="JavaScript"&gt; &lt;!-- if (window == top)top.location.href = "frames.htm"; //frames.htm 为框架网页 // ...

    Vue 组件(component)教程之实现精美的日历方法示例

    (day), disabled: isDisabled(day) }" @click="selectDay(day)"&gt; {{ day }} &lt;/span&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;!-- 确认和取消按钮 --&gt; 确认&lt;/button&gt; 取消&lt;/button&gt; &lt;/footer&gt; &lt;/div&gt; &lt;/template&gt; ``` ...

    js省市区三级联动(兼容版本)

    7. **用户体验**:在用户进行选择时,可以通过`disabled`属性禁用未填充数据的下级联动框,防止用户误操作。同时,提供默认值或者搜索功能,使用户能更快找到目标地区。 8. **错误处理**:添加错误处理逻辑,当数据...

Global site tag (gtag.js) - Google Analytics