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/Jquery——简单定时器的多种实现方法
Jul 03 Javascript
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
JavaScript生成随机字符串的方法
Mar 19 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
js点击返回跳转到指定页面实现过程
Aug 20 Javascript
BootStrap3中模态对话框的使用
Jan 06 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
Jan 22 Javascript
jQuery实现的浮动层div浏览器居中显示效果
Feb 03 Javascript
详解Vue.js入门环境搭建
Mar 17 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
Dec 06 Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
Sep 01 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 日漫
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
解决Python3下map函数的显示问题
2019/12/04 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
学生实习自我鉴定
2013/10/11 职场文书
软件工程专业推荐信
2013/10/28 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
初三政治教学反思
2014/01/30 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
长江三峡导游词
2015/01/31 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
六年级作文之关于梦
2019/10/22 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS