2012-12-14 83 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