当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript下阻止表单重复提交、防刷新、防后退

Javascript
Jquery实战_读书笔记2 选择器
JQuery 确定css方框模型(盒模型Box Model)
jQuery 入门级学习笔记及源码
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
JavaScript 学习笔记(十四) 正则表达式
JQuery 操作Javascript对象和数组的工具函数小结
用JS写的一个TableView控件代码
JQuery 1.4 中的Ajax问题
window.onbeforeunload方法在IE下无法正常工作的解决办法
优化javascript的执行速度
jQuery 1.4 15个你应该知道的新特性(译)
js 模拟实现类似c#下的hashtable的简单功能代码
setTimeout与setInterval在不同浏览器下的差异
php gethostbyname获取域名ip地址函数详解
JavaScript 未结束的字符串常量常见解决方法
document.getElementById为空或不是对象的解决方法
javascript中利用数组实现的循环队列代码

Javascript 中的 javascript下阻止表单重复提交、防刷新、防后退


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 116 ::
收藏到网摘: n/a

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'>" <!-- 这个方法只是个想法,没有经过调试 -->