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 相关文章推荐
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
javascript常用代码段搜集
Dec 04 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
JavaScript实现点击文字切换登录窗口的方法
May 11 Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 Javascript
javascript瀑布流布局实现方法详解
Feb 17 Javascript
javascript 广告移动特效的实现代码
Jun 25 Javascript
webpack源码之loader机制详解
Apr 06 Javascript
解决layer.confirm快速点击会重复触发事件的问题
Sep 23 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
JS如何定义用字符串拼接的变量
Jul 11 Javascript
node.js如何自定义实现一个EventEmitter
Jul 16 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python微信操控itchat的方法
2019/05/31 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
Python tornado上传文件的功能
2020/03/26 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
大学团支书的自我评价分享
2013/12/14 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
大学生党性分析材料
2014/12/19 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript