今天遇到一个奇怪的问题,用jquery提取表单值后ajax到后台存储,后台怎么存储都是1,用ie,chrome,ff测试,用断点测试的方式跟踪变量,发现在chrome,ff中都能将正确的值传到后台,唯独在IE下传到后台$_POST获取后是1。这里描述下问题的所在:
JQuery在提取select中的value值时一般写法都是:
$("#rpm_group").val();
这里alert出来是可以正常获取value的,但是今天在IE下却出了问题,后来用fiddler抓HTTP包头,发现传过去的的name是这样的:
但是用chrome抓包头是:
很明显IE画蛇添足给加了一个“[]”让PHP在解析的时候认为是数组。于是将jquery获取select值的方式修改成:
$("#rpm_group").find("option:selected").val();
这样IE在提交POST表单的时候就没有加上中括号了。这个问题很纠结,记得以前在IE下用第一种方式是没有出过问题的呀。