选择已禁用属性设置为“已禁用”仍允许在Chrome上选择选项

时间:2012-12-14 09:38:38

标签: javascript google-chrome cross-browser

我正在使用Zend Framework 2开发一个应用程序,我正在使用两个选择框。 第一个是来自数据库的数据,第二个是空的。

点击按钮将所选选项从首先选择传递到第二个(通过Javascript)后,我设置已停用的属性在第一个选择“禁用”,以便不能选择任何其他选项,因此传递给第二个选择。

  //Whithin javascript function  
  var s = document.getElementById('firstSelect');
  s.setAttribute("disabled","disabled");

在IE,Firefox和Safari上一切正常(将第一个选项中的一个选项传递到另一个选项后,第一个选项被禁用并且灰显,你根本无法选择更多选项。)但不在Chrome上

第一个选择与所有其他浏览器一样灰显,但仍然允许用户选择另一个选项并将其传递给另一个选择框。发生这种情况后,不能再选择任何选项,它的行为就像所有其他浏览器一样。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

实际上,铬是正确的。您正在根据ID( getElementById )进行选择。这些必须在您的DOM树中是唯一的。因此,如果您有多个具有相同ID的元素,则Google会选择一个。

您现在有两个选择:   - 扩展你的代码以通过 getElementsByClassname 加载元素,尽管IIRC还没有很好地支持它,或者使用 getElementsByTagname 。这将返回一个数组,您随后可以循环并相应地设置属性   - 进入jQuery(或任何其他框架)并让框架为您解决此问题(大多数框架都具有针对这些类型的情况的功能;)

Succsess ..

ps:元素 CAN 具有相同的“名称”属性,这与“ id

不同