ajax form提交的问题
连续两晚时间,一直在查找一个问题,同一样的数据,同一样的方法(前后台均一样),只是浏览器不一样,一个是IE6,一个是FF及chrome,但问题偏偏就是在IE6下,ajax提交后,参得到正常的返回值及数据。另两个就老是返回一个错误。还有就是在IE下能将新增或修改后的内容能正常的全部提交了,在FF,chrome下反而就变成了有些通提交成功,有些提交不成功,并返回错误的提示呢?请看代码:
<form><div id="tree" style="width:280px; float:left; height:528px; background-color:#f5f5f5;border :1px solid Silver; overflow:auto;"></div><input type="hidden" value="" id="id" name="id"/><input type="hidden" name="pid" id="pid" value="0" /><input type="hidden" value="{$tablename}" name="tablename" id="tablename"><dl class="lineD"><dt>名称:</dt><dd><input type="text" id="names" name="names" value="" /></dd><p>显示在前台的栏目名称,如首页,新闻等...</p></dl>.... <div class="page_btm"> <button class="btn_b" style="margin-left:200px; *margin-left:60px;">提交</button> </div> </form>
var param = [ { name : 'names', value : $("#names").val() }, { name : 'id', value : id }, { name : 'pid', value : pid }, { name : 'code', value : $("#code").val() },];$.ajax({ type: "POST", timeout: 2000, dataType: "json", url: "{:U('Global/doAjaxSave')}", data: param, error: function(text){ alert("error: "+text.info); window.location.reload(); }, success: function(text){ alert(text.info); window.location.reload(); } });
后台那边就是一个保存操作,方法是共用的。这个后台的方法在别的模块下是能正常运行的,也就是说后台部分问题,问题就在前台了。将HTML里的代码一行一行的删除测试,也是一样的错误提示,后来在IE下反复点了几次提交,突然发现窗口刷新了两次。有一次是reload()是刷新是正常的。但还有一次呢?
js代码删行的试,试过了,那就只有HTML了,刷了两次,那是不是就意味着提交了两次呢?查看了一下HTML,觉得没什么问题呀,只有两行<form>...</form>,为什么有这两行的呢?删了,再试。至此,问题元凶找出来了。
想了一下,可能是ajax用的是post提交方式,而页面又有一个from表单,故此,可能是在提交的时候从页触发了两次提交。所以就一直都出现这种奇奇怪怪的问题了。不过更令人想不通的是,当初为什么在加多一个<form>的标签上去呢?.....杯具,郁闷.......
页:
[1]