当前位置:   article > 正文

js防止多次提交

js防止多次提交

 1防止多次提交方法1

  1. /**
  2. * 函数防止多次提交
  3. **/
  4. function Throttle(method, context, params) {
  5. if (!method.IsUsed)
  6. {
  7. method.IsUsed = true;
  8. method.apply(context, params);
  9. method.IsUsed = false;
  10. }
  11. }

调用代码:

  1. /**
  2. *对外调用
  3. @method Save
  4. **/
  5. function Save(gatherFun, callbackFun) {
  6. var validSuccess = __FormVerify(); //验证是否满足保存的条件
  7. if (validSuccess)
  8. Throttle(__SaveCore, null, [gatherFun, callbackFun]);
  9. }
  10. /**
  11. *内部调用保存,实际的保存代码
  12. @method __SaveCore
  13. **/
  14. function __SaveCore(gatherFun, callbackFun) {
  15. var dataPost = {};
  16. dataPost["templateVersionGuid"] = window.TemplateGUID;
  17. dataPost["EpisodeID"] = window.EpisodeID;
  18. dataPost["LOGON.CTLOCID"] = session['LOGON.CTLOCID'];
  19. dataPost["LOGON.WARDID"] = session['LOGON.WARDID'];
  20. dataPost["LOGON.GROUPDESC"] = session['LOGON.GROUPDESC'];
  21. dataPost["LOGON.USERID"] = session['LOGON.USERID'];
  22. dataPost["TemporarySave"] = saveType //0:暂存,1:保存
  23. $.ajax({
  24. type: "POST",
  25. url: WebIp + "/csp/dhcnurmpgetdata.csp?ClassName=NurMp.DHCTempMultData&MethodName=Save",
  26. data: {
  27. datapost: JSON.stringify(dataPost)
  28. },
  29. success: function (msg) {}
  30. });
  31. }

2防止多次提交方法2,使用全局变量

  1. var isSave = false; /*是否正在保存*/
  2. /**
  3. *内部调用保存,实际的保存代码
  4. @method __SaveCore
  5. **/
  6. function __SaveCore(gatherFun, callbackFun) {
  7. if (!isSave) {/*如果正在保存,则忽略*/
  8. isSave = true;
  9. var dataPost = {};
  10. dataPost["templateVersionGuid"] = window.TemplateGUID;
  11. dataPost["EpisodeID"] = window.EpisodeID;
  12. dataPost["LOGON.CTLOCID"] = session['LOGON.CTLOCID'];
  13. dataPost["LOGON.WARDID"] = session['LOGON.WARDID'];
  14. dataPost["LOGON.GROUPDESC"] = session['LOGON.GROUPDESC'];
  15. dataPost["LOGON.USERID"] = session['LOGON.USERID'];
  16. dataPost["TemporarySave"] = saveType //0:暂存,1:保存
  17. $.ajax({
  18. type: "POST",
  19. url: WebIp + "/csp/dhcnurmpgetdata.csp?ClassName=NurMp.DHCTempMultData&MethodName=Save",
  20. data: {
  21. datapost: JSON.stringify(dataPost)
  22. },
  23. success: function (msg) {
  24. isSave = false/*保存结束后修改标志*/
  25. }
  26. });
  27. }
  28. }
  1. /**
  2. * 拼接URL参数
  3. * @method UrlJoinParam
  4. * @param { string } url
  5. * @param { string } urlParams URL参数
  6. **/
  7. function UrlJoinParam(url, urlParams) {
  8. if (urlParams == "")
  9. return url;
  10. if (url.indexOf("?") > -1) {
  11. url = url + "&" + urlParams;
  12. } else {
  13. url = url + "?" + urlParams
  14. }
  15. return url;
  16. }
  1. /**
  2. * 获取URL中的参数
  3. * @method GetQueryString
  4. * @param { string } name 要获取的参数的名字
  5. **/
  6. function GetQueryString(name) {
  7. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  8. var result = window.location.search.substr(1).match(reg);
  9. if (result != null) {
  10. return decodeURIComponent(result[2]);
  11. } else {
  12. return null;
  13. }
  14. }
  15. /**
  16. * 获取URL中的参数
  17. * @method GetQueryObject
  18. * @return { object } 以对象方式返回所有的参数
  19. **/
  20. function GetQueryObject() {
  21. var url = location.search;
  22. var theRequest = new Object();
  23. if (url.indexOf("?") != -1) {
  24. var str = url.substr(1);
  25. strs = str.split("&");
  26. for (var i = 0; i < strs.length; i++) {
  27. var item = strs[i];
  28. var key = item.split("=")[0];
  29. var value = item.split("=")[1];
  30. theRequest[key] = decodeURI(value);
  31. }
  32. }
  33. return theRequest;
  34. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/234523
推荐阅读
相关标签
  

闽ICP备14008679号