大家有哪些防止表单重复提交的妙招,说来听听呗!!详细点,谢谢回复内容:大家有哪些防止表单重复提交的妙招,说来听听呗!!详细点,谢谢禁掉提交按钮 表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。Post/Redirect/Get模式 在提交后执行页面重定向,这就是所谓的Post-Redirect-Get (PRG)模式。简言之,当用户提交了表单后,你...
PHP如何解决刷新页面表单重复提交??需要怎么做呢??回复内容:PHP如何解决刷新页面表单重复提交??需要怎么做呢??commit id加个hash判断下渲染页面的时候使用session生成1个哈希值,然后提交的时候将这个哈希值提交过来进行比对,如果不一致那就是重复提交了。checkToken加入version版本控制就行了,很简单的一个功能,比如java很多框架都是提供的大php也是有的,如yii2框架
背景:今天被测试提了一个bug,很纳闷,因为这个bug是:没有禁止表单重复提交。顿时感觉form表单真是无处不在。 一般我们不做重复提交的处理,有些地方会使用js禁止提交按钮的方式,但也仅限于通过js提交的表单。 于是各种百度,有说使用session做标记的,根据标记来判断是否第一次提交,但想想这种方式对后端来说比较复杂,而且session也比较贵。 今天测试提的bug顿时让我毫无头绪了,因为这个表单是同步提交的,根本没有js参与。...
如果重复提交的话会在数据表里累加数据,有解决办法吗?回复内容:如果重复提交的话会在数据表里累加数据,有解决办法吗?Post/Redirect/Get 简称PRG,是一种用来防止表单重复提交数据的一种Web设计模式.服务器端:1.增加表单令牌,验证通过令牌失效。2.如果有字段必须唯一,数据库设置唯一字段。3.session存储最后提交的部分数据,判断是否一致。4.成功后跳转新页面。JS端:1.提交后,取消提交事件或设置为不可点击。2.成功后,重新加载...
具体原理很简单,通过spring-aop的环绕通知,请求开始时将请求参数转换校验是否已存在,已存在则报错,否则存储,请求完成后删除。具体代码如下: 1、注释@interfacepackage com.yuntu.commons.intelligent.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/*** Created by niuzy on 2018-09-13.*/@T...
这次给大家带来如何处理vue按钮多次点击重复提交数据,处理vue按钮多次点击重复提交数据的注意事项有哪些,下面就是实战案例,一起来看一下。事件分为两种情况:?第一种: 不操作数据型?第二种: 操作数据型<template><button @click="submit()" :disabled="isDisable">点击</button> </template> <script>export default {name: TestButton,data: function () {return {isDisable: false}},methods: {submit() {this.isDisable = ...
这次给大家带来vue按钮多次点击重复提交数据如何处理,处理vue按钮多次点击重复提交数据的注意事项有哪些,下面就是实战案例,一起来看一下。这个其实是一个很细节的问题。 如果我们操作一个按钮,然后在按钮点击的时候绑定事件。事件分为两种情况:?第一种: 不操作数据型?第二种: 操作数据型<template><button @click="submit()" :disabled="isDisable">点击</button> </template> <script>export default {name: TestButton,da...
<DOCTYPEhtml><html><BODYBGCOLOR="#FFFFFF"><formname=formsubmitfid="the"method="post"action="XXX.php"><inputtype=hiddenname=mypretimevalue=0><inputtype="button"value="写好了"name="button1"class="4round"onclick=formsubmit()></form><scriptLanguage=JavaScript>function formsubmit() {Today = new Date();var NowHour = Today.getHours();var NowMinute = Today.getMinutes();var NowSecond = Today.getSeconds();v...
通过js控制,设置一个布尔类型的值进行判定,提交之后改变值,之后再次提交就不通过即可。代码如下:<!DOCTYPE HTML><html><head><title>Form表单</title></head><script type="text/javascript">var isCommitted = false;//表单是否已经提交标识,默认为falsefunction dosubmit(){if(isCommitted==false){isCommitted = true;//提交表单后,将表单是否已经提交标识设置为truereturn true;//返回true让表单正常提交}else{ ...
主页里面做登录判断时JSCRIPT: 以下是代码: 代码如下: function checkform(){ if (form1.Fs_UserName.value ==""){ alert("请输入用户名称!"); form1.Fs_UserName.focus(); return false;} if (form1.Fs_UserPass.value ==""){ alert("请输入用户密码!"); form1.Fs_UserPass.focus(); return false;} form1.submit(); } // 以前只纪录在数据库里面,最终没有显示在页面上,但最近做登录纪录的时...
1 服务器端的解决方法。这是我最为推荐的方法。优点是判断准确,兼容性最大。 做法:a页面显示表单,然后提交b页面处理,处理完后重定向到c页面显示结果。 1.0 在访问a页面时在session里生成一个标志ID,例如 //伪代码 session("submitID")=random() 然后把这个值写到表单的一个hidden的input里 //伪代码 ")%> 1.1 b页面处理时判断表单所提交的submitID2的值是否和session中的submitID一致,不一致的话重定向到报错页面,一...
我的解决办法如下(只针对客户端): 用户点击提交按钮后给按钮添加disabled属性 代码如下:$("input:submit").each(function() { var srcclick = $(this).attr("onclick"); if(typeof(srcclick)=="function"){ $(this).click(function() { if (srcclick()) { setdisabled(this); return true; } return false; });} }); function setdisabled(obj) { setTimeout(function() { obj.disabled = true; }, 100); }
由于在项目中应用了Jquery Validation表单验证插件,所以要实现在Validation验证完毕后,提交form,然后禁止按钮。CodeProject上有一个DisableBtnPostBack项目,但不无法和Jquery Validation结合,代码先贴出来,给大家提示下,碰到这种情况不要使用该代码。代码如下: js: 代码 代码如下: function disableBtn(btnID, newText) { Page_IsValid = null; if (typeof (Page_ClientValidate) == function) { Page_ClientValidate(); ...
基于令牌的处理就是一劳永逸的方法。 代码如下: 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.formsubmitf.mypretime.value=mysec;...
在ASP.NET中,如果在点了一个按钮,提交到后台执行期间,再点一次按钮,会出现两种情况,一种是执行了两次后台代码,另一种是等待前一次的提交动作执行完后再次执行提交动作,无论是哪一种,都是跑了两遍后台代码,这是很多情况下不希望出现的。以下代码在 IE、傲游极速模式下测试通过。 代码如下: ODP连接测试 function submitTest(btn) { btn.value = "正在等待后台数据更新"; btn....