asp.net表单提交,防重复提交,并执行前台的JS验证
来源:互联网 发布:网络彩票何时恢复 编辑:程序博客网 时间:2024/06/14 23:27
在项目开发中,遇到这样的一个情况,就是用户重复提交。当然这个不能怪用户,只能怪.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 可以是一个打转的图片 ,也可以和按钮一样大。反正目的是这个层把按钮遮住。
- asp.net表单提交,防重复提交,并执行前台的JS验证
- ASP.NET 防重复提交.
- asp.net中,表单提交后,防刷新重复提交、防后退解决办法
- 防表单重复提交
- 防表单重复提交
- 防表单重复提交
- 前台防止表单重复提交的方法。Jquery、js
- asp.net页面防刷新重复提交
- JS防重复提交
- 防表单重复提交粗暴的总结
- javaweb之Session客户端防表单重复提交(js)和服务端Session防表单重复提交
- spring 防重复提交表单
- JavaWeb_session_防表单重复提交
- jquery表单防重复提交
- Struts2_防表单重复提交
- springmvc表单防重复提交
- Asp.net中防刷新重复提交、防后退方法
- Asp.net中防刷新重复提交、防后退方法
- c++回调函数(下)
- jpeglib使用指南
- ndk-build android.mk 自动生成文件
- Android实战技巧:ViewStub的应用
- android 3.0下keyboard的自动弹出和search搜索按键的设置
- asp.net表单提交,防重复提交,并执行前台的JS验证
- ios 中大图片的应用
- openstack---------keystone
- NSString内存相关问题
- 使用Maven
- 进制转换
- popToViewController用法
- 黑马程序员------异常
- Android GridView 与 Base Adapter