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 相关文章推荐
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
使用requestAnimationFrame实现js动画性能好
Aug 06 Javascript
快速学习jQuery插件 Cookie插件使用方法
Dec 01 Javascript
Javascript实现汉字和拼音互转的终极方案
Oct 19 Javascript
学习使用bootstrap的modal和carousel
Dec 09 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
Jan 03 Javascript
利用NPM淘宝的node.js镜像加速nvm
Mar 27 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
vue 插件的方法代码详解
Jun 06 Javascript
一个刚完成的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
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
简单谈谈favicon
2015/06/10 PHP
php如何获取文件的扩展名
2015/10/28 PHP
Prototype Class对象学习
2009/07/19 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
Python基于Tkinter实现的记事本实例
2015/06/17 Python
对python多线程与global变量详解
2018/11/09 Python
python实现视频分帧效果
2019/05/31 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
python函数不定长参数使用方法解析
2019/12/14 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
python range实例用法分享
2020/02/06 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
中科方德软件测试面试题
2016/04/21 面试题
企业门卫岗位职责
2013/12/12 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2014年教务处工作总结
2014/12/03 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL