2012-12-14 42 views
0

我正在开发一个使用Zend Framework 2的应用程序,我使用两个选择框。 第一个是来自数据库的数据,第二个是空的。选择与禁用属性设置为“禁用”仍然允许在Chrome上选择选项

点击按钮来传递从所选择的选项之后第一选择第二个(通过Javascript)我设置禁用属性在第一选择到“禁用”使得没有其他选项可以被选择并因此传递给第二选择。

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

一切工作的IE,Firefox和Safari罚款(传递了一个参数从第一后选择到其他的第一个选择是禁用,greyedout,你根本无法选择更多的选择。),但无法在Chrome

第一个选择像所有其他浏览器一样变灰,但仍然允许用户选择另一个选项并将其传递到另一个选择框。发生这种情况后,不能选择更多选项,并且其行为与所有其他浏览器的行为相同。

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

+0

我无法重现该问题。你能提供一个完整的缩减测试用例吗? jsbin.com上的实时版本会有所帮助。 – Quentin

回答

0

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

现在你有两个选择: - 延长你的代码或者通过getElementsByClassName方法加载的元素,虽然这不是很好的支持但IIRC,或使用的getElementsByTagName。这将返回一个数组,您随后可以循环并相应地设置属性 - 进入jQuery(或任何其他框架),并让框架为您解决这个问题(大多数框架都具有适合这些类型情况的功能)

Succsess ..

PS:元素CAN具有相同的 '' 属性,这是不一样的 'ID'

+0

嗯..也许我的问题还不够清楚。我的选择作为唯一的ID(id =“firstSelect”)。所以,当你点击这个第一个选择的选项,然后按一个按钮将它传递给另一个选择一个JS函数,告诉这个firstSelect现在已禁用属性设置为禁用,因此它不应该允许用户选择更多选项。 – devanerd