return false; }else{ $(this).attr("ctime",nowTime);//设置节点属性的值 alert('提交成功
防止表单重复提交: var flag = false; function jqButtonBC_onClickClient_insert(rc) { if (flag==false) { flag
问题引入:当我们在做一个页面数据提交的时候,当我们连续点击提交按钮,因为快速连续点击,因为速度过快,页面还来不及反应,导致页面从复提交。。...“hasSubmit”验证,如果hasSubmit==false才提交表单,在提交表单的同时修改hasSubmit=true,ajax提交完成时,在次修改hasSubmit=false即可完成。...div> var hasSubmit = false; //记录用户是否已经提交了表单...div> var hasSubmit = false; //记录用户是否已经提交了表单...$(function () { //表单验证JS $("#form1").validate({ //出错时添加的标签
问题 在看Java Web 深入分析时, 看到表单重复提交问题一节, 如下描述如何解决问题: 要防止表单重复提交, 就要标识用户的每一次访问请求, 使得每一次访问对服务端来说都是唯一的....如果一致, 则说明没有重复提交, 否则用户提交上来的token已经不是当前这个请求的合法token. 流程图如下: ?...我提交的第二次, 第三次还是带有相同的token啊, 服务器检测Session中的内容应该还是一致的. 为什么可以防止重复提交?...服务端的事情没有办法减少, 那么就从客户端入手, 当客户端重复提交时, 通过JavaScript脚本阻止用户提交. 当客户提交表格时, 可以通过JavaScript脚本里的变量来表示用户是否提交....isCommitted) { isCommitted=true; return true; } else { alert("不能重复提交表单
防止重复提交 对于防止重复提交,最简单也最不安全的做法相信大家也都经历过,前端在一个请求发送后立即禁用掉按钮,这里咱们来讨论一下后端对防止重复提交的处理方式。...主要针对非分布式环境下防止重复提交与分布式环境下的防止重复提交。一般分布式环境下也可以通过网关路由的方式将同一个用户的请求路由到一个实例上处理。...单进程内的防止重复提交 单个进程内防止重复提交可以选取的方式有很多种,因为并不是每一个接口都需要做防止重复提交的校验,所以在java中通常采用注解+拦截器的方式来实现。...= null) { sessionIdMap.remove(key, key); } } 进程内防止重复提交的特点很明显,就是构建一个锁池,每个需要防止重复提交的请求需要来池中获取锁...分布式环境下防止重复提交 和单进程的实现方式类似,只是这个锁池是分布式的,多个进程来这里申请锁,然后资源利用完之后会释放锁。没错,这就是传说中的分布式锁。其他的操作与单进程内的处理方式一样。
利用Spring MVC的过滤器及token传递验证来实现表单防重复提交。...create() default false; boolean remove() default false; } 在跳转页面的方法上加上:@Token(create = true)\ 在提交的...(remove) { if (isRepeatSubmit(request)) { logger.warn("表单不能重复提交...class="com.example.web.interceptor.TokenInterceptor"/> 表单添加...{session.getAttribute('token')}"/> 在form表单里面添加token域,提交表单时需要传过去。
> 四、JSP 五、Controller 1、请求表单时
前言 在实际开发过程中,web应用经常会出现网络延迟,接口处理时间略长,用户习惯等原因造成的客户连续多次点击提交按钮调用接口,导致数据库会出现重复数据或这接口业务逻辑bug等问题 方案 利用redis...锁实同一个用户同一个请求2秒内重复提交返回错误路由 SubmitLock 标记需要拦截的方法 @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME...System.out.println("tryLock fail, key = ["+key+"]"); return Result.errorResult().setMsg("重复请求
turnForm.target = 'login2'; turnForm.enctype = "text/json; charset=UTF-8"; //创建隐藏表单
表单提交在 firefox 浏览器下是不起作用的 2....用.submit () 方法提交表单 3).button 的 name/id 绝对不能命名为”submit” 4).form 中所有的组件(按钮,文本框等)的 name/id 也不能命名为”submit...” # 当提交按钮的 name 或者 id 为 submit 时候,用 js 提交表单,表单名.submit () 时候会报一个错误,提示对象不支持此属性或办法。...那么,请问为什么 当提交按钮的 name 或者 id 为 submit 或者 action 的时候 js 提交表单会报错呢?这难道是 一个 bug? 高手们请指教。。。。...我在项目中发现 与 得出的效果截然不同, 谁能告诉我这两着有合不同 我又如何能用图片来替代原有的提交按钮 是说这是一个按钮,它的是一个提交按钮。当点击它时,它会自动将它所在的表单进行提交.
<script type="text/javascript"> function check(form) {
比如当他点击提交表单时,服务器处理比较慢, 页面上没有任何反应,他会迫不及待地再点击几次,这样就会产生重复数据或者报错,或者他会刷新一下再次提交。...对于如何处理重复提交,一般教科书上都有点明,不外乎是在js代码中增加限制或者通过session来处理。...关于js代码限制,就是当用户第一次提交后,将提交按钮设置为“disable”状态,或者直接不提交重复请求,这只能处理用户重复连续点击的情况,如果用户刷新页面后再次提交,这种方法就无济于事了,因此我们更多的是通过...session处理,就是在访问表单提交页时,服务器端生成一个随机序列,存储在session中,并传递到客户端,用户提交时,连同这个序列一起传递到服务器,后端程序会判断这两个序列是否一致,如果一致,表明是第一次提交...,否则就是重复提交。
直观的说,只要用form将需要提交到服务器的标签包围,当提交的时候,就会向服务器发送有name属性的数据。所以,input内容提交必须有name属性。...id:标识标签元素 当提交后,服务器就会得到:username=填的用户名 & password=填的密码 当点击提交后,form数据就会发送。通常提交前要校验数据。比如长度规则等。...对应到表单,就是onsubmit="false",表示不提交。 如果if条件都满足,则return true;提交。...||表示或者,意思是,如果username==null或者username是空字符串,条件1或者条件2为true则都是true 方法2:js控制提交表单 首先,表单元素代码如下: 1 10 这里关于提交,页面切图通常都会用a标签或者button来提交,因为涉及到表单验证。
场景: 需要提交数据,且数据处理后,会跳转页面。(注:数据提交需要post) 思路1: 1. 参考ajax提交数据,进行处理,处理成功后返回到客户端 2....在客户端跳转页面 思路2: 使用form表格进行post提交 实现方法:需要创建一个form表格,且数据必须在form表格中,用Input表格元素存起来,效果如下: /// form 表单提交...labTotalMoney").text(); form2.appendChild(total); document.body.appendChild(form2); form2.submit(); //提交... 注:一定要记得加 document.body.appendChild(form2); 上面form提交的方法,感觉传数据还是太麻烦了,必须写成form表单的元素,不知道有没有更加简单的方法,求指教
在Web开发中,对于处理表单重复提交是经常要面对的事情。那么,存在哪些场景会导致表单重复提交呢?表单重复提交会带来什么问题?有哪些方法可以避免表单重复提交? ?...2.场景二:提交表单成功之后用户再次点击刷新按钮导致表单重复提交 ? 3.场景三:提交表单成功之后点击后退按钮回退到表单页面再次提交 ? 表单重复提交的弊端 下面通过一个简单的示例进行说明。...显然,从演示结果来看,如果出现表单重复提交,将会导致相同的数据被重复插入到数据库中。实际上,这是不应该发生的。 如何避免重复提交表单 关于解决表单重复提交,分为在前端拦截和服务端拦截2种方式。...// 表单已经提交,不允许再次提交 console.log("请不要重复提交表单!")...在前端拦截虽然可以解决场景一的表单重复提交问题,但是针对场景二(刷新)和场景三(后退重新提交)的表单重复提交是无能为力的。 ?
一、为什么会出现重复提交? 主要是由于网络的延迟问题以及页面刷新的操作。 二、表单的重复提交会导致的问题? 主要能够造成很多脏数据。...三、解决的办法: 3.1 前端解决办法:通过前端的方法将提交按钮变灰。对于前端的办法这里就不做演示了,因为前端的控制虽然能够防止数据的重复提交但是治标不治本。这里主要介绍第二种方法。...request.getSession().removeAttribute("sessionToken"); return true; } } 这篇博客利用session结合token来解决表单重复提交的问题...但是对于分布式项目而言,还是没有解决分布式下面的表单重复提交问题。所以我对基于session的表单验证,做了一些优化,采用redis+totekn的方式来解决分布式下面表单重复提交的问题。...用户每次提交表单的时候都会将redis中用户所对应的key删除掉。通过这种方式就可以完美的解决分布式下面表单重复提交的问题了。
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。...使用浏览器后退按钮重复之前的操作,导致重复提交表单。 使用浏览器历史记录重复提交表单。 浏览器重复的HTTP请求。 几种防止表单重复提交的方法 1.禁掉提交按钮。...这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。 3.在session中存放一个特殊标志。...如果发现表单提交里没有有效的标志串,这说明表单已经被提交过了,忽略这次提交。 这使你的web应用有了更高级的XSRF保护。 4.在数据库里添加约束。...在数据库里添加唯一约束或创建唯一索引,防止出现重复数据。这是最有效的防止重复提交数据的方法。
表单提交无非就将input的值向后台提交,后台在逐个读取.记得有次朋友问我,表单提交的提交协议原理是什么,我当时没怎么思考直接说就跑http(s)的传输协议..后台直接来个接收就了事.后来后来,...说这么无非就是告诉你后台接收是通过input name来收值.那如果一个表单的input多于20个那每个接收不累死,好在,我发现一个js的功能,可以省去不少时间和精力....重点: JSON.stringify($("#queryForm").serializeJson()) 分析:这个直接将表单queryForm的input 转为JSON然后进行后台提交....}); return indexed_array; } eg: JSON.stringify(getFormData($form)) 然后后台只要接受这个json并且处理就可以获得表单的值
公司测试提了一个项目后台在IE浏览器下(360,firefox就没问题)出现数据重复的问题,调试了好久终于发现问题所在,也不知道是谁写的代码,醉醉的。。。。..."submit" onclick="submit();"/> --> js...firefox one 360 one 结果分析: type=button 就单纯是按钮功能 type=submit 是发送表单...这里就可以解释为什么上面会出现重复提交了,但是重复提交情况只会在IE浏览器中,firefox 和360就没有,猜想应该是对form提交进行了优化。...提交" onClick="submit()"> 执行完onClick,跳转文件在 js文件里控制。
解决 php提交表单到当前页面,刷新会重复提交 今天在写php程序的时候,发现一个问题,就是post提交到本页的表单数据,刷新后会反复提交。因此向群友请教。最终,得到了解决。...如下: 只需要在表单里生成一个token(随机字符串),然后用个input装起来,设置hidden。...不同则进行处理 if($session_id == $post_id){ echo "已经处理过了,不管了"; }else{ //如果页面还没有提交过表单...,则显示表单,否则处理post过来的数据 if($post_id == -2){ ?