2
<select size="4" name="lbxEmployees" id="lbxEmployees" disabled="disabled" class="FormDropDown" style="width:100%;"> 
     <option value="1">jim jubak</option> 
     <option value="2">Peyton Andrew</option> 
     <option selected="selected" value="3">Pat smith</option> 
     <option value="4">Mark Smith</option> 
     <option value="5">Kobe Bryan</option> 
</select> 

上述代码在IE9和IE7上呈现不同的形式。有人能解释为什么吗?两个浏览器中的选择框均被禁用,但其中一个显示所选值(IE7),而另一个不显示(IE9)。IE9/IE7选择标签行为不同

+3

...因为他们是不同的浏览器。 –

+0

哦,它可能有助于提及哪一个做什么。 –

+0

我做了小测试,发现禁用是关键。 IE7显示选中的项目甚至被禁用。 IE9没有。 – AJP

回答

0

有趣,开始启用复选框,我想这是一个POSS的方式来欺骗IE9 ...

<script type="text/javascript"> 

document.getElementById("lbxEmployees").value = 3; 

document.getElementById("lbxEmployees").disabled=true; 

</script> 

没有工作。在IE7的确

(如果你的目标是presnt用户选择的值,并必须有选择框)看起来我们可能需要做这样的事情......

<div id="EmployeesDiv"> 

    Employee: 

    <select name="lbxEmployees" id="lbxEmployees"> 
     <option value="1">jim jubak</option> 
     <option value="2">Peyton Andrew</option> 
     <option selected="selected" value="3">Pat smith</option> 
     <option value="4">Mark Smith</option> 
     <option value="5">Kobe Bryan</option> 
    </select> 

    </div> 


<script type="text/javascript"> 

window.onload = function() { 
var selectBox = document.getElementById("lbxEmployees"); 
var val = (selectBox.options[selectBox.selectedIndex].text; 

/* remove select box and replace */ 
document.getElementById("EmployeesDiv").innerHTML ="Employee: "+val; 
} 
</script> 

您的应用程序可能当然有一个更简单的方法,IE9的事让我思考......

*不巨大的,如果对禁用的原因是安全性,做这一切在服务器端页面打印若然之前!

+0

你确实提到了我想要做的事情。禁用是安全的一部分,这就是我需要这个功能的原因。 – AJP

+0

有安全和一些业务逻辑..不知道为什么你说,它不是很大。有时业务规则要求出头这是独一无二..反正..我找不到正确的答案..但你有一些合理的解决方案,所以我将标志着你的答案.. – AJP

+0

你好,谢谢,我的意思用不是很大了 - 禁止输入字段可以很容易地重新启用与客户端工具,这些天,因此,不被依赖,如果该原因禁用是安全的。 –

1

这仅仅是因为IE9是不同的浏览器。 IE7是在2006年发布的,而IE9在2011年。没有什么要说明什么是默认的东西没有启用,所以他们已经禁用它..

编辑: 如果你想禁用它由于安全性,您应该在服务器端执行该操作。如果黑客复制您的源代码并删除“禁用”部分,他们将能够更改并包含该信息。

+0

谢谢你的回答。 – AJP