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加解密功能页面
Dec 12 Javascript
jQuery 核心函数以及jQuery对象
Mar 23 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
php与js的区别是什么
Aug 05 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
浅谈document.write()输出样式
May 07 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
Aug 09 Javascript
解决angularJS中input标签的ng-change事件无效问题
Sep 13 Javascript
4个顶级JavaScript高级文本编辑器
Oct 10 Javascript
浅析vue中的MVVM实现原理
Mar 04 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
农民C键的运用技巧
2020/03/04 星际争霸
强烈推荐:php.ini中文版(1)
2006/10/09 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
PHP调用MySQL存储过程并返回值的方法
2014/12/26 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
使用Pytorch来拟合函数方式
2020/01/14 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
Python request使用方法及问题总结
2020/04/26 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
商业活动邀请函
2014/02/04 职场文书
ktv周年庆活动方案
2014/08/18 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
学校证明范文
2015/06/24 职场文书