IE8下Jquery获取select选中的值post到后台报错问题

IE8下出现的问题是直接将selectedValuepost发送到后台,后台接收时会报错,这是因为IE8下selectedValue当成了数组,后台无法识别

我们一般使用jquery获取select时,一般这么用:

<selectid='a'>

<optionselected='selected'value='1'>

</select>

varselectedValue=$("#a").val();

在非IE8下,selectedValue的值为“1”,typeofselectedValue为“string”。

在IE8下,selectedValue的值为[“1”],typeofselectedValue为“objectg”。

如果直接将selectedValuepost发送到后台,后台接收时会报错,因为在传输过程中,IE8下selectedValue当成了数组,后台无法识别。

解决的代码如下:

selectedValue=typeofselectedValue=="object"?selectedValue[0]:selectedValue;

这样selectedValue为字符串了。

​另外这样会引发其他的问题:

vara=selectedValue.trim();

​这段代码在IE8下无法执行,可能的原因也是由于上述所致。

​使用如下代码就确保可以运行:

$.trim(selectedValue);

相关推荐