一、定义一个状态码
// 表单提交performanceList // 修改提交 var saveflag=true;//防止点击多次提交的状态码 $("#savebasic").click(function(){ if($('#basicNews').form('validate') && tableisnull){ //判断点击状态码,true为第一次点击, if(saveflag) { saveflag=false;//改变状态,避免多次点击调用ajax //活动外部编码; $.ajax({ url: "", type: 'post', data: JSON.stringify(activityObj), contentType: "application/json", success: function (param) { if(param.status_code=="1003" || param.status_code=="1002"){ new Tools.popUp({ title:'提示信息', messTxt:'修改成功', iconType:'successIcon', isSingleBtn:true, closeCallBack:function(closeEvent){ closeEvent(); } }) }else{ if(!param){ sayForm('提示信息','提交失败'); }else{ sayForm('提示信息',param.reason); } } saveflag=true;//上传成功后恢复可点击 }, error:function(err){ new Tools.popUp({ajaxError:true}) saveflag=true;//上传失败后恢复可点击 } }); } }else{ sayForm('提示信息','请完善表单信息') }; });
点击提交按钮后,将saveflag置为false
二、20221124 提供一个更加简化的方法,可以减少 saveflag 的使用。
将ajax封装成一个统一调用方法。
ajax内部
- beforeSend:进入ajax请求发起前
利用数组存储每次发出请求url,请求拦截器判断数组是否存在此次请求url,如果存在,取消请求,不存在则将url添加到数组中。 - complete,不管成功与否ajax请求完成都会执行的函数。
本次请求不论成功与否,清除本次url记录。