2012-12-12 99 views
4

我使用jQuery 1.2.6(無法升級,因爲它的系統的一部分)。 我收到一個奇怪的錯誤。jQuery的選擇框錯誤在Internet Explorer

這是我的代碼:

​​

,當我在IE9測試加載頁面時,我得到這個錯誤:

"Unable to get value of the property 'specified': object is null or undefined" 

這是爲什麼?

+0

是否與'的document.getElementById( '狀態')工作。value'? –

+0

@dystroy是的,它......我想現在這是一個很好的解決方法 –

+0

,如果你有使用jQuery的最後一個版本同樣的問題,你能只檢查?這將有助於找到錯誤的確切位置(IE,舊的jQuery,任何jQuery)。 –

回答

4

The value in an option is optional「如果沒有,選項元素的值是元素的的textContent。 「)。所以你好像在這裏遇到了一個bug。

我在the old jQuery source code當時一看,我發現的bug:

value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value; 

option.attributes.value是未定義如此option.attributes.value.specified崩潰。

由於bug是jQuery中(更確切地說是什麼樣子,試圖解決一個古老的IE漏洞目前固定的),這將是合法的在這個特殊的任務不使用jQuery。

除了更改HTML(你的HTML是罰款),我推薦使用,作爲一種解決方法,香草JS解決方案:

var test = document.getElementById('state').value; 

需要注意的是,當我說的錯誤是在jQuery的,它主要表示2008版本的jQuery在最近版本的IE中失敗,同時試圖解決2008瀏覽器的錯誤。你應該真的告訴你的架構師,保持這個舊的jQuery不是一個合理的決定。

2

您選擇的選項沒有設定的值,所以這就是爲什麼它是抱怨:)

+0

你是對的......我沒有注意到,我忘了一個空值添加到選定的選項。當我添加時,錯誤消失 –

+1

這裏顯然有一個錯誤,因爲該值是可選的。 –

+0

嗯,是的,但根據你的報價,它回落到元素的內容,這裏也沒有提供。它可以通過在選項中提供值屬性或一些文本來解決。 –