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;" onclick="submits()" >提交</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>的标签上去呢?.....杯具,郁闷.......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值