我使用jQuery 1.2.6(無法升級,因爲它的系統的一部分)。 我收到一個奇怪的錯誤。jQuery的選擇框錯誤在Internet Explorer
這是我的代碼:
,當我在IE9測試加載頁面時,我得到這個錯誤:
"Unable to get value of the property 'specified': object is null or undefined"
這是爲什麼?
我使用jQuery 1.2.6(無法升級,因爲它的系統的一部分)。 我收到一個奇怪的錯誤。jQuery的選擇框錯誤在Internet Explorer
這是我的代碼:
,當我在IE9測試加載頁面時,我得到這個錯誤:
"Unable to get value of the property 'specified': object is null or undefined"
這是爲什麼?
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不是一個合理的決定。
您選擇的選項沒有設定的值,所以這就是爲什麼它是抱怨:)
你是對的......我沒有注意到,我忘了一個空值添加到選定的選項。當我添加時,錯誤消失 –
這裏顯然有一個錯誤,因爲該值是可選的。 –
嗯,是的,但根據你的報價,它回落到元素的內容,這裏也沒有提供。它可以通過在選項中提供值屬性或一些文本來解決。 –
是否與'的document.getElementById( '狀態')工作。value'? –
@dystroy是的,它......我想現在這是一個很好的解決方法 –
,如果你有使用jQuery的最後一個版本同樣的問題,你能只檢查?這將有助於找到錯誤的確切位置(IE,舊的jQuery,任何jQuery)。 –