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)。

4

2 回答 2

1

这仅仅是因为 IE9 是一个不同的浏览器。IE7 于 2006 年发布,而 IE9 于 2011 年发布。没有必要在未启用的内容中显示默认设置,因此他们已将其禁用。

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

于 2012-05-16T20:42:28.280 回答
0

有趣的是,从启用的复选框开始,我尝试将其作为欺骗 IE9 的一种方法......

<script type="text/javascript">

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

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

</script>

没用。在IE7中做过

(如果您的目标是向用户展示选定的值并且必须具有选择框)看起来我们可能需要做类似...

  <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 的事情让我思考......

*如果禁用的原因是安全性,那就不好了,如果是这样,请在打印页面之前在服务器端执行所有这些操作!

于 2012-05-16T20:41:45.693 回答