javascript阻止浏览器后退事件防止误操作清空表单_javascript技巧

由于客户大多数是不懂电脑的大菜鸟。所以误操作比较多,有时没有选中文本框,然后不小心按了退格之后,刚刚辛苦填好的表单就什么也后退的没有了。网上查了好多资料,然后整合了一下。分享给大家。也希望酸奶姐姐来看看我的第一篇技术博客。呵呵(别介意我提到了你哦。)。废话不多说。上源码。

复制代码 代码如下:

$(function(){
//处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外
function banBackSpace(e){
var ev = e || window.event;//获取event对象
var obj = ev.target || ev.srcElement;//获取事件源

var t = obj.type || obj.getAttribute('type');//获取事件源类型

//获取作为判断条件的事件类型
var vReadOnly = obj.getAttribute('readonly');
var vEnabled = obj.getAttribute('enabled');
//处理null值情况
vReadOnly = (vReadOnly == null) ? false : true;
vEnabled = (vEnabled == null) ? true : vEnabled;

//当敲Backspace键时,事件源类型为密码或单行、多行文本的,
//并且readonly属性为true或enabled属性为false的,则退格键失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& (vReadOnly || vEnabled!=true))?true:false;

//当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效
var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
?true:false;

//判断
if(flag2){
return false;
}
if(flag1){
return false;
}
}

//禁止后退键 作用于Firefox、Opera
document.onkeypress=banBackSpace;
//禁止后退键 作用于IE、Chrome
document.onkeydown=banBackSpace;
window.history.forward(1);//屏蔽浏览器自带的后退键
})

需要注意的地方是:

这段代码一定要放到初始化方法中。然后用document.onkeypress=banBackSpace去调用自己写的方法。

复制代码 代码如下:

vReadOnly = (vReadOnly == null) ? false : true;对于这段代码,原来冒号后面是vReadOnly<span style="font-family: Arial, Helvetica, sans-serif;">这个值,后来发现在我项目中它返回空,不是null于是改成了true。</span>

按照上面方法即可实现在非text,password,textare时按退格阻止浏览器后退事件,但是不会阻止在文本框有值时的退格事件。这是我的第一篇博客,希望各位多多捧场。

时间: 2024-10-06 13:28:46

javascript阻止浏览器后退事件防止误操作清空表单_javascript技巧的相关文章

JavaScript判断浏览器对CSS3属性是否支持的多种方法_javascript技巧

前言 CSS3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候.比如transition的animation-play-state,就只有部分浏览器支持. 下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性: 第一种:javascript比较常用下面这个代码: var support_css3 = (function() { var div = document.createElement

JavaScript在浏览器标题栏上显示当前日期和时间的方法_javascript技巧

本文实例讲述了JavaScript在浏览器标题栏上显示当前日期和时间的方法,分享给大家供大家参考.具体如下: 将这段脚本放到head区即可: <script language="JavaScript"> <!-- function resetIt() { // Calculate Time var timerID = null; var timerRunning = false; if(timerRunning) clearTimeout(timerID); time

用javascript模仿ie的自动完成类似自动完成功的表单_javascript技巧

最近在写一个javascript框架,看见网上有不少自动完成功能的表单,所以一时兴起,用javascript写了一个,为自己的框架增点色. 步骤: 1.传入两个参数,第一个是你要绑定的表单对象,第二个是你要检索的数组. 2.动态建立一个div做为你要自动完成的层,设置属性和事件(我在这里并没有设置div的visible和display属性,而是将它的left设为"-1000px",这样就移出了浏览器之外,达到了隐藏的效果. 3.对传入的数组进行检索,找出与输入内容匹配或相近的项,并将其

Javascript的表单验证-提交表单_javascript技巧

推荐阅读:Javascript的表单验证长度 Javascript的表单验证-初识正则表达式 Javascript的表单验证-揭开正则表达式的面纱 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 坏数据不该抵达服务器:提交表单时的验证 表单域对象里有个form特性,它使用数组表示了整份表单的域 假如这里只有一个简单的信息文本框和一个邮政编码框,还有一个提交按钮 <form> <input id="message" name

JavaScript跨浏览器获取页面中相同class节点的方法_javascript技巧

网页开发时,在很多时候我们需要操作相同类名的元素,即class相同的元素.昨天参加笔试,有一道相关的题目没答上来: JavaScript获取页面中class为test的节点 于是收集了一些相关的资料,在本文中列举了两种我觉得比较好的方法,不足之处,还望大家批评指正.如果大家有更好的方法,希望可以分享. Solution1 Jeremy Keuth方案 Jeremy Keuth大叔在<JavaScript DOM 编程艺术>(第2版)(英文:DOM Scripting-Web Design wi

JavaScript阻止浏览器返回按钮的方法_javascript技巧

本文实例讲述了JavaScript阻止浏览器返回按钮的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码可以阻止用户点击返回按钮,非常实用,需要的朋友可以收藏一下. <SCRIPT type="text/javascript"> window.history.forward(); function StopBack() { window.history.forward(); } </SCRIPT> </HEAD> <BODY onloa

JavaScript阻止浏览器返回按钮的方法

 这篇文章主要介绍了JavaScript阻止浏览器返回按钮的方法,可实现通过javascript禁用掉返回按钮的功能,需要的朋友可以参考下     本文实例讲述了JavaScript阻止浏览器返回按钮的方法.分享给大家供大家参考.具体分析如下: 下面的JS代码可以阻止用户点击返回按钮,非常实用,需要的朋友可以收藏一下. ? 1 2 3 4 5 6 7 <SCRIPT type="text/javascript"> window.history.forward(); func

有关清空表单的各种可能的操作

1.用按钮清空,用 reset()方法,或者用javascript 写空值的方法 2.按浏览器"后退"返回上一页的时候清空表单内容,那么就在文件头部分加上:<META NAME="save" CONTENT="history">,再介绍一下xhtml中的内置行为:savehistory <?xml version="1.0" encoding="GB2312"?><!DOCTY

web开发 java 表单-浏览器 servlet PrintWriter 输出的自动提交表单在浏览器关闭的时候会继续吗

问题描述 浏览器 servlet PrintWriter 输出的自动提交表单在浏览器关闭的时候会继续吗 B/S架构下System A向System B发送请求,System B 向System C发送请求,然后System C进行一系列处理操作,完成之后会通知System B(HttpServlet接口),System B接收到通知之后也会做一系列处理操作,最后会通过PrintWriter打印输出一个带有自动提交表单的html页面,这个自动提交表单的action url为System A的一个通