JavaScript如何禁止Backspace键

 更新时间:2015年12月02日 16:01:54   作者:孤傲苍狼  
这篇文章主要介绍了JavaScript如何禁止Backspace键,可以帮助大家解决“只读输入框在IE下按下Backspace键回退到前一个页面”的问题,感兴趣的小伙伴们可以参考一下

今天在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键回退到前一个页面”的问题了。

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

相关文章

  • filemanage功能中用到的lib.js

    filemanage功能中用到的lib.js

    filemanage功能中用到的lib.js...
    2007-04-04
  • js正则匹配多个全部数据问题

    js正则匹配多个全部数据问题

    这篇文章主要介绍了js正则匹配多个全部数据问题,本文通过两种方式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • js实现点击按钮弹出上传文件的窗口

    js实现点击按钮弹出上传文件的窗口

    本文主要介绍了js实现点击按钮弹出上传文件的窗口的实例方法。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 使用JS读取XML文件的方法

    使用JS读取XML文件的方法

    由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,下面通过本文给大家详细介绍下使用JS读取XML文件的方法,一起看看吧
    2016-11-11
  • 微信小程序结合Storage实现搜索历史效果

    微信小程序结合Storage实现搜索历史效果

    这篇文章主要为大家详细介绍了微信小程序结合Storage实现搜索历史效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 微信小程序实现水平时间轴

    微信小程序实现水平时间轴

    这篇文章主要为大家详细介绍了微信小程序实现水平时间轴,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • ES6学习之变量的两种命名方法示例

    ES6学习之变量的两种命名方法示例

    最近在学习ES,所以想着将自己学习的一些经验技巧总结一下,方便学习,所以下面这篇文章主要跟大家分享介绍了关于ES6学习之变量的两种命名方法,文中通过示例代码介绍的很详细,需要的朋友们下面来一起看看吧。
    2017-07-07
  • JavaScript变量作用域_动力节点Java学院整理

    JavaScript变量作用域_动力节点Java学院整理

    这篇文章主要介绍了JavaScript变量作用域,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • JS搜狐面试题分析

    JS搜狐面试题分析

    这篇文章主要介绍了JS搜狐面试题,涉及javascript数组、字符串及面向对象程序设计相关技巧,需要的朋友可以参考下
    2016-12-12
  • Bootstrap.css与layDate日期选择样式起冲突的解决办法

    Bootstrap.css与layDate日期选择样式起冲突的解决办法

    这篇文章主要为大家详细介绍了BootStrap.css与layDate日期选择样式起冲突的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论