JavaScript如何禁止Backspace键


Posted in Javascript onDecember 02, 2015

今天在IE浏览器下发现,当把使用readonly="readonly"属性将文本框设置成只读<input type="text" readonly="readonly"/>时有一个奇怪的问题:如果光标进入只读文本框,然后按下Backspace键,就会跳转到上一个页面,效果就像点击了浏览器的后退按钮返回前一个页面一样,而在火狐和google下没有这样的问题出现,为了解决这个问题,写了一个如下的处理方法,如果文本框是只读的,那么就禁用Backspace键
代码如下:

//处理键盘事件 禁止后退键(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');
  //处理null值情况
  vReadOnly = (vReadOnly == "") ? false : vReadOnly;
  //当敲Backspace键时,事件源类型为密码或单行、多行文本的,
  //并且readonly属性为true或enabled属性为false的,则退格键失效
  var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") 
     && vReadOnly=="readonly")?true:false;
  //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效
  var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
     ?true:false;  
  
  //判断
  if(flag2){
   return false;
  }
  if(flag1){ 
   return false; 
  } 
 }

window.onload=function(){
 //禁止后退键 作用于Firefox、Opera
 document.onkeypress=banBackSpace;
 //禁止后退键 作用于IE、Chrome
 document.onkeydown=banBackSpace;
}

加上这样的处理之后,就可以轻松解决“只读输入框在IE下按下Backspace键回退到前一个页面”的问题了。

希望大家喜欢这篇文章,继续关注小编更新整理的文章。

Javascript 相关文章推荐
java script编程起步(第三课)
Jan 10 Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
给jQuery方法添加回调函数一款插件的应用
Jan 21 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
js实现上传图片预览的方法
Feb 09 Javascript
学习javascript的闭包,原型,和匿名函数之旅
Oct 18 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 Javascript
bootstrap表格分页实例讲解
Dec 30 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
vue data引入本地图片的两种方式小结
Nov 13 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
js文本框输入内容智能提示效果
Dec 02 #Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 #Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 #Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 #Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
Dec 02 #Javascript
解决jQuery使用JSONP时产生的错误
Dec 02 #Javascript
jquery实现触发时更新下拉列表内容的方法
Dec 02 #Javascript
You might like
建立动态的WML站点(一)
2006/10/09 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
PHP pear安装配置教程
2016/05/14 PHP
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
js常用DOM方法详解
2017/02/04 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Python3最长回文子串算法示例
2019/03/04 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
先进个人事迹材料
2014/12/29 职场文书
技术员岗位职责
2015/02/04 职场文书
预备党员群众意见
2015/06/01 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python