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 相关文章推荐
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
javascript中call apply 的应用场景
Apr 16 Javascript
js css自定义分页效果
Feb 24 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 Javascript
React-Native使用Mobx实现购物车功能
Sep 14 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
Jan 07 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
javascript少儿编程关于返回值的函数内容
May 27 Javascript
在element-ui的select下拉框加上滚动加载
Apr 18 Javascript
jquery实现有过渡效果的tab切换
Jul 17 jQuery
vscode 使用Prettier插件格式化配置使用代码详解
Aug 10 Javascript
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
CURL状态码列表(详细)
2013/06/27 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
javascript定时器取消定时器及优化方法
2017/07/08 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
详解node nvm进行node多版本管理
2017/10/21 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python continue语句用法实例
2014/03/11 Python
python实现井字棋游戏
2020/03/30 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python的log日志功能及设置方法
2019/07/11 Python
python函数的作用域及关键字详解
2019/08/20 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
2020/05/11 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
物业管理计划书
2014/01/10 职场文书
大二学期个人自我评价
2014/01/13 职场文书
婚前财产公证书
2014/04/10 职场文书
学习经验演讲稿
2014/05/10 职场文书
七一讲话心得体会
2014/09/05 职场文书
领导欢迎词致辞
2015/01/23 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python