我們一般使用jquery獲取select時,一般這麼用:
<select id='a'> <option selected='selected' value='1'> </select> var selectedValue = $("#a").val();
在非IE8下,selectedValue的值為“1”,typeof selectedValue 為“string”。
在IE8下,selectedValue的值為[“1”],typeof selectedValue 為 “objectg”。
如果直接將selectedValue post發送到後台,後台接收時會報錯,因為在傳輸過程中,IE8下selectedValue當成了數組,後台無法識別。
解決的代碼如下:
selectedValue = typeof selectedValue == "object" ? selectedValue[0] : selectedValue;
這樣selectedValue為字符串了。
另外這樣會引發其他的問題:
var a = selectedValue.trim();
這段代碼在IE8下無法執行,可能的原因也是由於上述所致。
使用如下代碼就確保可以運行:
$.trim(selectedValue);