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代码[翻译]
Feb 12 Javascript
jquery中ajax学习笔记3
Oct 16 Javascript
js处理json以及字符串的比较等常用操作
Sep 08 Javascript
javascript数组排序汇总
Jul 07 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
node实现登录图片验证码的示例代码
Apr 20 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 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
php 什么是PEAR?(第二篇)
2009/03/19 PHP
php header Content-Type类型小结
2011/07/03 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php操作access数据库的方法详解
2017/02/22 PHP
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
自定义jquery模态窗口插件无法在顶层窗口显示问题
2014/05/29 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python用access判断文件是否被占用的实例方法
2020/12/17 Python
想学画画?python满足你!
2020/12/24 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
学院书画协会部门职责
2013/11/28 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
博士论文答辩开场白
2015/06/01 职场文书
预备党员群众意见
2015/06/01 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers