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 相关文章推荐
ext combox 下拉框不出现自动提示,自动选中的解决方法
Feb 24 Javascript
JS弹出对话框返回值代码(asp.net后台)
Dec 28 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
JS实现的样式切换功能tableCSS实例
Dec 30 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
fullpage.js最后一屏滚动方式
Feb 06 Javascript
vue基于两个计算属性实现选中和全选功能示例
Feb 08 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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
php 时间计算问题小结
2009/01/04 PHP
Zend Studio使用技巧两则
2016/04/01 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
2016/05/20 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
python 远程统计文件代码分享
2015/05/14 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python实现简单的tcp 文件下载
2020/09/16 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
资产经营总监岗位职责
2013/12/04 职场文书
幼儿园保育员辞职信
2014/01/12 职场文书
2014年班主任自我评价范文
2014/04/23 职场文书
安全生产计划书
2014/05/04 职场文书
优秀班主任材料
2014/12/16 职场文书
2015年中秋节主持词
2015/07/30 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
高考满分作文赏析(2篇)
2019/08/12 职场文书