struts2的form用ajax提交偶尔提交两次 前端 就ajax提交一次,form不submit的。很少的情况下才会出现调用两次的情况。什么原因呀。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我曾经遇到过,submit放到了按钮事件上面,,有些浏览器会执行二次请求事件。尤其FIREFOX。另外,AJAX ,有时候,触发事件并没有及时响应,导致用户会产生第二次点击,也有可能。 我之前也遇到过这种情况,应该是只有查询请求的时候会有这种情况,如果任何ajax请求都有这种 情况,那就要看如何处理了 function onSubmit(){ var cmp_form = Ext.getCmp('form_panel'); var akc194=Ext.getCmp("akc194_cmp").getValue(); if(akc194=="" || akc194==null){ Ext.MessageBox.alert('提示', '请选择拨付月份!'); return; } var store = Ext.getCmp('dsGrid'); var grid1 = Ext.getCmp('grid1'); //var m = store.getSelectedRange(); var m=grid1.getSelectionModel().getSelections(); //获取添加的人员列表记录 if(m==null||m==""){ Ext.MessageBox.alert('提示', '请选择需要拨付的医院!'); return; } var jsonData = ""; for(var i = 0, len = m.length; i < len; i++){ var ss = JSON.stringify(m[i].data); if ( i==0 ) jsonData = jsonData + ss; else jsonData = jsonData + "," + ss; } cmp_form.form.doAction('submit',{ url:'<s:url value="/k1/f30180405/savePatchHosPay.action"/>', timeout:1000000000, params:{ listData: jsonData,akc194:akc194 }, waitMsg:'保存......', reset: false, success: function(menu_form, action) { Ext.MessageBox.alert('Message', '保存成功!'); }, failure: function(menu_form, action) { Ext.MessageBox.alert('Message', '保存失败,请在月拨付查询中查看拨付成功的医院列表!'); } }); }这个方法偶尔执行两次。。没有用form提交。。 有可能是刷新了页面,你不妨设置 token拦截器试试 我用的是MVC3,你是不是引用了两次<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>可能布局引用了_Layout.cshtml 提交表单的页面也引用了 http://www.360doc.com/content/10/0712/10/15103_38434853.shtml ajax 中有一种缓存机制,而这种缓存机制会重提交,建议你换种ajax写法。 书店的登陆和注册功能怎么实现 初学myBatis遇到一个奇怪的问题。 java 智能卡 现在还在用吗? 启动异常2 jsp如何与asp.net交互cookies的信息!? 提交表单怎么传参? response.sendRedirect(""); 不能立即输出???????咋个弄哦!!郁闷ing 空指针异常 请问我这条语句有错吗? 再问怎样判断用户是否在线??? tomcat为什么启动就报错,,,求帮助! 大神,求救,问什么表或视图不存在
另外,AJAX ,有时候,触发事件并没有及时响应,导致用户会产生第二次点击,也有可能。
function onSubmit(){
var cmp_form = Ext.getCmp('form_panel');
var akc194=Ext.getCmp("akc194_cmp").getValue();
if(akc194=="" || akc194==null){
Ext.MessageBox.alert('提示', '请选择拨付月份!');
return;
}
var store = Ext.getCmp('dsGrid');
var grid1 = Ext.getCmp('grid1');
//var m = store.getSelectedRange();
var m=grid1.getSelectionModel().getSelections();
//获取添加的人员列表记录
if(m==null||m==""){
Ext.MessageBox.alert('提示', '请选择需要拨付的医院!');
return;
}
var jsonData = "";
for(var i = 0, len = m.length; i < len; i++){
var ss = JSON.stringify(m[i].data);
if ( i==0 )
jsonData = jsonData + ss;
else
jsonData = jsonData + "," + ss;
}
cmp_form.form.doAction('submit',{
url:'<s:url value="/k1/f30180405/savePatchHosPay.action"/>',
timeout:1000000000,
params:{
listData: jsonData,akc194:akc194
},
waitMsg:'保存......',
reset: false,
success: function(menu_form, action) {
Ext.MessageBox.alert('Message', '保存成功!');
},
failure: function(menu_form, action) {
Ext.MessageBox.alert('Message', '保存失败,请在月拨付查询中查看拨付成功的医院列表!');
}
});
}
这个方法偶尔执行两次。。没有用form提交。。
可能布局引用了_Layout.cshtml 提交表单的页面也引用了