javascript下阻止表单重复提交、防刷新、防后退


Posted in Javascript onAugust 17, 2007

1 服务器端的解决方法。这是我最为推荐的方法。优点是判断准确,兼容性最大。 

做法:a页面显示表单,然后提交b页面处理,处理完后重定向到c页面显示结果。 

1.0 在访问a页面时在session里生成一个标志ID,例如 

//伪代码 
session("submitID")=random() 
然后把这个值写到表单的一个hidden的input里 

//伪代码 
<%response.write("<input name=submitID2 type=hidden value=\""+session("submitID")+"\">")%> 
1.1 b页面处理时判断表单所提交的submitID2的值是否和session中的submitID一致,不一致的话重定向到报错页面,一致的话把session中的submitID清空然后进行表单处理 

//伪代码 
session("submitID")="" 
//然后处理提交...... 
处理完成后重定向到c页面 

1.2 c页面其实就没什么好说的了,就是一个显示处理结果的页面。 

2 客户端用js解决 
这种方法不好,因为必然会遇到不同浏览器的兼容性问题,而且是必然可以绕过的。唯一的优点就是简单,不需要太多的编码 

2.0防止后退 
在每个页面的最顶上加上这个代码 

<script>window.history.forward();</script> 
2.1防止刷新 
我很难想到什么好方法可以做到。因为要屏蔽的地方太多了。只好采用一种很烂的方法: 

<body onunload="location='about:blank'>" <!-- 这个方法只是个想法,没有经过调试 --> 

Javascript 相关文章推荐
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
轻松实现jquery手风琴效果
Jan 14 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
Mar 01 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
May 20 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
Vue.js项目部署到服务器的详细步骤
Jul 17 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
vue router 组件的高级应用实例代码
Apr 08 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 04 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 Javascript
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 #Javascript
wordpress之js库集合研究介绍
Aug 17 #Javascript
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 #Javascript
Autocomplete Textbox Example javascript实现自动完成成功
Aug 17 #Javascript
如何用js控制css中的float的代码
Aug 16 #Javascript
javascript 函数式编程
Aug 16 #Javascript
总结AJAX相关JS代码片段和浏览器模型
Aug 15 #Javascript
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
人大复印资料处理程序_查询篇
2006/10/09 PHP
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
Node接收电子邮件的实例代码
2017/07/21 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
详解vue中组件参数
2018/07/09 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
Python获取脚本所在目录的正确方法
2014/04/15 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
python实现画一颗树和一片森林
2018/06/25 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
Python当中的array数组对象实例详解
2019/06/12 Python
Python中请不要再用re.compile了
2019/06/30 Python
python基础教程之while循环
2019/08/14 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
python3爬虫中异步协程的用法
2020/07/10 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
九月份红领巾广播稿
2014/01/22 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
管理提升方案
2014/06/04 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
golang 如何通过反射创建新对象
2021/04/28 Golang
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android