asp.net表单提交时防重复提交并执行前台的JS验证

 更新时间:2021年9月22日 10:13  点击:1503
在项目开发中,遇到这样的一个情况,就是用户重复提交。当然这个不能怪用户,只能怪.NET或者服务器反应迟钝......我是这样理解的。
在网上搜了一下,解决方案是不少,比如:
http://bbs.csdn.net/topics/340048988
(这个大家提了不少建议)
http://www.cnblogs.com/blsong/archive/2009/12/24/1631144.html
(这个基本上总结了网上的方法)
但实际上做互联网web项目中,需要在前台执行JS或者Jquery的验证(主要是增强用户体验),那么再使用上面的方法,就会出现问题。要么重复提交依然存在,要么前台JS验证失效。最后没办法,只有自己写一个,在满足阻止用户重复提交的情况下,还能保证前台JS验证有效。代码如下:
复制代码 代码如下:

//按钮注册加载样式事件
var ItSelfButton;
var ControlRegPostResult = true;
function AddInputClick() {
$("input[type='submit']").click(function () {
ItSelfButton = $(this);
if (ItSelfButton.attr("repeat") == null) {
var btnDiv = $("<div>");
btnDiv.attr("id", "Mask_BTN");
var divimg = $("<img>");
divimg.attr("alt", "加载中...");
divimg.attr("src", "/Images/ButtonLoading.gif");
divimg.css({ "margin-left": ($(this).width() - 4) / 2, "margin-top": ($(this).height() - 16) / 2 });
btnDiv.append(divimg);
btnDiv.css({ width: $(this).width() + 12 + "px", height: $(this).height() + "px", top: $(this).offset().top + "px", left: $(this).offset().left + "px", position: "absolute" });
$(document.body).append(btnDiv);
setTimeout(MaskTimeOutRemove, 200);
}
});
}
$(function () {
AddInputClick();
});
$(window).resize(function () {
if (ItSelfButton != null) {
$("#Mask_BTN").css({ top: ItSelfButton.offset().top + "px", left: ItSelfButton.offset().left + "px" });
}
});
function MaskRemove() {
$("#Mask_BTN").remove();
}
function MaskTimeOutRemove() {
if (!ControlRegPostResult) {
$("#Mask_BTN").remove();
ControlRegPostResult = true;
}
}

其中在JS 验证失败中将
复制代码 代码如下:

ControlRegPostResult = false;

这样基本上满足我的目的了。
ButtonLoading.gif 可以是一个打转的图片 ,也可以和按钮一样大。反正目的是这个层把按钮遮住。
[!--infotagslink--]

相关文章

  • ASP.NET中防止页面刷新造成表单重复提交执行两次操作

    本文主要介绍在Session存储唯一标识Token,通过和后台对比,以实现防止刷新提交表单的问题。...2021-09-22
  • 不用from表单提交数据代码

    <?php include("../inc/inc.php"); islogin(); $Db = new Db(); //此数据库类地址数据库连接类 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//...2016-11-25
  • Asp.net webForm设置允许表单提交Html的方法

    下面小编就为大家分享一篇Asp.net webForm设置允许表单提交Html的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-09-22
  • 浅谈C#在网络波动时防重复提交的方法

    这篇文章主要介绍了浅谈C#在网络波动时防重复提交的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • mvc form表单提交的几种形式整理总结

    这篇文章主要介绍了mvc form表单提交的几种形式整理总结的相关资料,这里提供了几种方法及实例代码,需要的朋友可以参考下...2021-09-22
  • PHP实现表单提交时去除斜杠的教程

    这篇文章介绍了php中表单提交时去除斜杠的教程,初学时经常会有这样的疑问,希望能帮助到有需要的同学 本文实例讲述了PHP实现表单提交时去除斜杠的方法。分享给大家...2016-12-31
  • php 表单提交长文章数据丢失问题解决方法

    数据丢失对于小编来讲是个头痛的问题了,因为小编碰到表单提交大量数据发生丢失问题也是这几天了,但不是时尚而有时会丢失了,这个问题非常难解决,下面整理了一些解决办法,希...2016-11-25
  • html+ashx 表单提交示例

    这篇文章主要介绍了html+ashx 表单提交的具体实现,需要的朋友可以参考下...2021-09-22
  • asp.net表单提交时防重复提交并执行前台的JS验证

    今天遇到这样的一个情况,就是用户重复提交。当然这个不能怪用户,只能怪.NET或者服务器反应迟钝,下面有个不错的教程,大家可以参考下...2021-09-22
  • Laravel怎么实现表单提交

    Laravel相信很多人都知道,它在大家的生活中还是很常见得到。一些用户可能不知道Laravel提交表单怎么实现,下面文章就给大家带来Laravel实现表单提交教程,感兴趣的下面一...2017-07-06
  • Vue form 表单提交+ajax异步请求+分页效果

    这篇文章主要介绍了Vue form 表单提交+ajax异步请求+分页效果,需要的朋友可以参考下...2017-04-27
  • Laravel实现表单提交

    本文给大家分享的是在使用laravel过程中如何实现表单提交的一个简单示例,非常简单,这里推荐给学习laravel的小伙伴...2017-05-21