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插件之打造自定义的select标签
Nov 30 Javascript
jQuery实现个性翻牌效果导航菜单的方法
Mar 09 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
Oct 25 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
关于TypeScript中import JSON的正确姿势详解
Jul 25 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
详解JavaScript中操作符和表达式
Sep 12 Javascript
如何使用vuex实现兄弟组件通信
Nov 02 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
JS模拟实现京东快递单号查询
Nov 30 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
星际争霸中的对战模式介绍
2020/03/04 星际争霸
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
将时间以距今多久的形式表示,PHP,js双版本
2012/09/25 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
手机注册发送验证码倒计时的简单实例
2017/11/15 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
使用Python绘制图表大全总结
2017/02/11 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
python实现转圈打印矩阵
2019/03/02 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
h5封装下拉刷新
2020/08/25 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
课程改革实施方案
2014/03/16 职场文书
房展策划方案
2014/06/07 职场文书
毕业生找工作求职信
2014/08/05 职场文书
转学证明范本
2015/06/19 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书