JavaScript屏蔽Backspace键的实现代码


Posted in Javascript onNovember 02, 2017

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

ps:用JS屏蔽backspace(退格删除)键或某一个指定键的完美代码

当我们的网页内有一个只读属性的表单时,如下:

<input type="text" readonly="readonly" name="HuoShangName" id="HuoShangName" />

上面的这个文本域只是用来向用户展示一些信息的,用户不能对其进行更改,所以加上了“readonly='readonly'”的只读属性,但是在IE8下面,从外观上是看不出来它和其它正常文本域的区别的,所以有的用户可能会对其进行一些删除或者添加内容的一些操作,比如当光标位于这个只读属性的文本域内时,如果用户按下了backspace(退格删除键),那么就会导致整个浏览器的后退,会让人很是郁闷,这时我们要做的就是屏蔽这个只读文本域上的一些指定的键,使用户按下这些键时不会引起浏览器的退后,刷新,或者前进等动作。

<input class="input w350" type="text" readonly="readonly" onkeydown="PingBi('8')" name="HuoShangName" id="HuoShangName" />

上面的代码中,onkeydown表示的是当按下按键时的意思,下面来JS函数pingbi的具体代码,也是非常简单的:

function PingBi(id){
 var k=window.event.keyCode;
 if(k==id){window.event.keyCode=0;window.event.returnValue=false;return false;}
}

好了,这样当光标位于只读属性的文本域内时,用户按下backspace(退格删除键)时就不会引起浏览器的后退了。

总结

以上所述是小编给大家介绍的JavaScript屏蔽Backspace键的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
Dec 04 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
Jul 31 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
js生成随机数的过程解析
Nov 24 Javascript
javascript移动开发中touch触摸事件详解
Mar 18 Javascript
原生 JS Ajax,GET和POST 请求实例代码
Jun 08 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
Feb 07 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
Oct 24 Javascript
Vue源码学习之初始化模块init.js解析
Nov 02 #Javascript
为输入框加入数字js校验代码分享
Nov 02 #Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 #Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 #Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
Nov 02 #Javascript
vue-resource + json-server模拟数据的方法
Nov 02 #Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 #Javascript
You might like
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php中截取字符串支持utf-8
2007/01/18 PHP
php的urlencode()URL编码函数浅析
2011/08/09 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
php接口隔离原则实例分析
2019/11/11 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
javascript常用方法总结
2015/05/14 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
Selenium定位元素操作示例
2018/08/10 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
大学新闻系应届生求职信
2014/06/02 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
英雄儿女观后感
2015/06/09 职场文书
小学六年级毕业感言
2015/07/30 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android