我们一般使用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);
如对本文有疑问, 点击进行留言回复!!
同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
【JavaScript笔记(一)】万丈高楼平地起 - 基本概念篇
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
网友评论