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 相关文章推荐
div层的移动及性能优化
Nov 16 Javascript
Jquery 数据选择插件Pickerbox使用介绍
Aug 24 Javascript
jquery中加载图片自适应大小主要实现代码
Aug 23 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
Dec 10 Javascript
基于jquery实现简单的分页控件
Mar 17 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
Jul 27 Javascript
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
微信小程序实现侧边分类栏
Oct 21 Javascript
javascript自定义加载loading效果
Sep 15 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目录导航文件代码
2006/10/09 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
Jquery的Tabs内容轮换效果实现代码,几行搞定
2014/02/12 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
简单解析JavaScript中的__proto__属性
2016/05/10 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python实现简单温度转换的方法
2015/03/13 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
keras slice layer 层实现方式
2020/06/11 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
应届生.NET方向面试题
2015/05/23 面试题
会计专业自荐信
2014/06/03 职场文书
知识就是力量演讲稿
2014/09/13 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS