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 相关文章推荐
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
Jan 27 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
JS图片等比例缩放方法完整示例
Aug 03 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
React-router中结合webpack实现按需加载实例
May 25 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
Aug 14 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 Javascript
详解vue组件基础
May 04 Javascript
关于jquery中attr()和prop()方法的区别
May 28 jQuery
vue-自定义组件传值的实例讲解
Sep 18 Javascript
JavaScript之Blob对象类型的具体使用方法
Nov 29 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对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
Vue自定义指令封装节流函数的方法示例
2018/07/09 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python对List中的元素排序的方法
2018/04/01 Python
python删除不需要的python文件方法
2018/04/24 Python
基于Python log 的正确打开方式
2018/04/28 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
英国高档百货连锁店:John Lewis
2017/11/20 全球购物
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
毕业自我评价范文
2013/11/17 职场文书
消防隐患整改通知书
2015/04/22 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
中秋联欢会主持词
2015/07/04 职场文书
党员心得体会范文2016
2016/01/23 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书