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读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
将HTML格式的String转化为HTMLElement的实现方法
Aug 07 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
Aug 30 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
jQuery源码分析之init的详细介绍
Feb 13 Javascript
javascript 判断一个对象为数组的方法
May 03 Javascript
使用JSON格式提交数据到服务端的实例代码
Apr 01 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
2020/05/02 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
javascript 函数使用说明
2010/04/07 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
轻松实现js图片预览功能
2016/01/18 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
python使用KNN算法识别手写数字
2019/04/25 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
HTML5本地存储之Database Storage应用介绍
2013/01/06 HTML / CSS
单位授权委托书范文
2014/08/02 职场文书
总结会主持词
2015/07/02 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang