我們一般使用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);