0

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

单击按钮将所选选项从第一个选择传递到第二个(通过Javascript)后,我将第一个选择的禁用属性设置为“禁用”,这样就无法选择其他选项,因此传递给第二个选择。

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

在 IE、Firefox 和 Safari 上一切正常(在将一个选项从第一个选择传递到另一个选项后,第一个选择被禁用并显示为灰色,您根本无法选择更多选项。)但在 Chrome 上不行

与所有其他浏览器一样,第一个选择是灰色的,但仍允许用户选择另一个选项并将其传递给另一个选择框。发生这种情况后,无法选择更多选项,并且其行为与所有其他浏览器一样。

任何想法为什么会发生这种情况?

4

1 回答 1

0

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

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

成功..

ps:元素可以有相同的' name '属性,这与' id '不同

于 2012-12-14T10:20:49.470 回答