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 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
jQuery入门知识简介
Mar 04 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
jquery中append()与appendto()用法分析
Nov 14 Javascript
JavaScript中Math.SQRT2属性的使用详解
Jun 14 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
artDialog+plupload实现多文件上传
Jul 19 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
Aug 14 Javascript
JS原生带缩略图的图片切换效果
Oct 10 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
Mar 25 Javascript
微信小程序自定义顶部组件customHeader的示例代码
Jun 03 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
Dec 09 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过滤危险html代码的函数
2008/07/22 PHP
浅谈PHP的反射机制
2016/12/15 PHP
JQuery的html(data)方法与&amp;lt;script&amp;gt;脚本块的解决方法
2010/03/09 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python中的localtime()方法使用详解
2015/05/22 Python
Python中的字典与成员运算符初步探究
2015/10/13 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python OpenCV处理图像之滤镜和图像运算
2018/07/10 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
python实现操作文件(文件夹)
2019/10/31 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
发现世界上最好的珠宝设计师:JewelStreet
2017/12/17 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
大学开学计划书
2014/04/30 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
2016年教代会开幕词
2016/03/04 职场文书