如何防止表单重复提交
1、在点击submit按钮后将按钮的disabled=true,就可以防止重复点击提交按钮。也就是在JS代码中的myform.submit()前面加上一句: myform(‘submit’).disabled=true;选中这个submit的input,把它的disabled=true即可

2、给定标识符,在js中判断标识符来防止表单重复提交

但是前两种都不能防止页面刷新时或者提交后点击后退按钮造成的重复提交,这时候就得用session了(token验证);
在服务器端生成一个唯一的随机Token值(令牌),同时在当前用户的Session域中保存这个Token。然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提交的时候连同这个Token一起提交到服务器端,然后在服务器端判断客户端提交上来的Token与服务器端生成的Token是否一致,如果不一致,那就是重复提交了,此时服务器端就可以不处理重复提交的表单。如果相同则处理表单提交,处理完后清除当前用户的Session域中存储的标识号。
其实在tp和laravel框架中可以很方便的使用,具体看官方文档

标签: none

添加新评论