本篇文章主要介绍了网页如何防止刷新重复提交与如何防止后退的解决方法,具体如下: 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: if session("ok")=true thenresponse.write "错误,正在提交"response.end end if数据处理完后,修改session("ok")=false。 数据处理成功马上Redirect到另外一个页面 操作后刷新的确是个问题,你可以使用跳转页面、关...
web前端数据请求或者表单提交往往通过对dom的点击事件来操作,但是往往因为认为点击过快(少年手速挺快的嘛),或者因为响应等待使得用户误人为没操作而重复很多次点击,造成表单数据的连续重复提交,造成用户体检的不好,甚至影响到整个系统的安全性。而前端的防治重复提交至少很有效的防治了人为正常操作下的很多不必要麻烦。下面就来讲讲如何有效避免前端的表单重复提交 表单提交有以下几种方式: <form name=”form” method=”...
好长时间没写js代码了刚好遇到这样的问题。我们系统多数表单没有做防止重复提交的。 由于不想在后端这边处理,因为假如由后端处理的话,就需要在页面加载的时候给出一次性的token值,加大了开发的工作量不说,还容易忘记做这个,同时,ajax也不好处理,需要提交失败的话同时返回新的token值。 所以我想在,js这边动手。其实以前和前端提过,久久不见动静,就只好弄块砖丢出去了。思路是,覆盖掉$.ajax,在这里面处理掉防止重复提交的...
代码如下: function preventAjax(obj,num){ obj.disabled = true; var num = num; var types =obj.type; if(types == submit){ var text = obj.value; var time1 = setInterval(function(){ obj.value = num; num--; if(obj.value <= 0 ){ clearInterval(...
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>防止重复表单提交</title> <style> #refresh{ display: none; width:200px; height:20px; background-color: #ff0; } </style> <script> var inprocess = false; window.onload = function(){ document.forms["picker"].onsubmit = validateSubmit; document.getElementById("refresh").onclick = star...
在网页设计中,可能由于某种需求,需要禁止浏览器的后退按钮,特别是一些对用户操作比较严格的网站,如果用户重复提交事件,然后又后退,这样可能会对某些数据产生灾难性的问题。所以今天就向大家介绍一种通过location.replace禁止浏览器后退按钮的方法。 这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远处于失效状态,用户也就无法进行后退了。具体的使用方法如下所示: ①比...
<script type="text/javascript" language="javascript"> var wait = 60; function change() { $o = $("#J_refresh_checkcode"); if(wait == 0) { $o.removeAttr("disabled"); $o.html("看不清?换一张"); wait = 60; } else { $o.attr("disabled", true); $o.attr("font-color", "gray"); $o.html(wait + "秒后可重新获取"); wait--; if(wait == 59) { var imgNode = document.getElementById("vimg"); imgNode.sr...
一般来说有两个原因: 1、第一种是没有取消绑定,例如$("#test").unbind("click");$("#test").click(function(){....}); 2、是因为在不同的页面多次引用同一个js文件,这样也有可能会造成重复提交请求。
在submit()后加个return false就可以了。如: 代码如下:document.formname.submit(); return false; 以后要注意了 后面尝试了另一种方法: 代码如下:if ($("#formid").validationEngine("validate")){ document.getElementById("formid").submit(); } 也是可以的
代码如下:$(document).ready(function() { $(form).submit(function() { if(typeof jQuery.data(this, "disabledOnSubmit") == undefined) { jQuery.data(this, "disabledOnSubmit", { submited: true }); $(input[type=submit], input[type=button], this).each(function() { $(this).attr("disabled", "disabled"); }); return true; } else { return false; } });});
/** * * @authors Benjamin * @date 2013-11-13 10:16:59 */ 一、常见的重复提交问题 a>点击提交按钮两次。 b>点击刷新按钮。 c>使用浏览器后退按钮重复之前的操作,导致重复提交表单。 d>使用浏览器历史记录重复提交表单。 e>浏览器重复的HTTP请求。 二、防止表单重复提交的方法 a>禁掉提交按钮。表单提交后disabled现在的按钮或者取消该按钮的点击事件或者默认事件。这种方法防止心急的用户多次点击按钮。但有个问题,如果在...
第一种:用flag标识,下面的代码设置checkSubmitFlg标志: 代码如下:<script language="”javascript”"> var checkSubmitFlg = false; function checkSubmit(){ if(checkSubmitFlg ==true){ return false; //当表单被提交过一次后checkSubmitFlg将变为true,根据判断将无法进行提交。 } checkSubmitFlg ==true; return true; } < /script > < form name=”form1” method=”post” onsubmit=”return checkSubmit();”> ………..<...
注册的时候需要发送验证激活帐号的邮件,为了避免邮件的多次重复发送,所以可以在点击了发送后,设置button要过一段时间才能继续点击。下面是一个简单的例子: 代码如下:<html> <head> <title>点击获取验证码按钮后按钮变灰,倒计时一段时间后又可重复点击</title> </head> <body> <input type="button" id="btn" value="免费获取验证码" /> <script type="text/javascript"> var wait=60; function time(o) { if (wait == 0) { o...
在ASP.NET中,如果在点了一个按钮,提交到后台执行期间,再点一次按钮,会出现两种情况,一种是执行了两次后台代码,另一种是等待前一次的提交动作执行完后再次执行提交动作,无论是哪一种,都是跑了两遍后台代码,这是很多情况下不希望出现的。以下代码在 IE、傲游极速模式下测试通过。 代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W...
基于令牌的处理就是一劳永逸的方法。 代码如下:<script Language=JavaScript> function formsubmit() { Today = new Date(); var NowHour = Today.getHours(); var NowMinute = Today.getMinutes(); var NowSecond = Today.getSeconds(); var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond; if((mysec-document.formsubmitf.mypretime.value)>600){ //600只是一个时间值,就是5分钟内禁止重复提交,值随便设 document.formsub...