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 相关文章推荐
准确获得页面、窗口高度及宽度的JS
Nov 26 Javascript
在textarea中显示html页面的javascript代码
Apr 20 Javascript
javascript 短路法代码精简
Aug 20 Javascript
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
layUI的验证码功能及校验实例
Oct 25 Javascript
JS数组的常用10种方法详解
May 08 Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
Jun 05 Javascript
vue实现前端分页完整代码
Jun 17 Javascript
基于openlayers实现角度测量功能
Sep 28 Javascript
js面向对象方式实现拖拽效果
Mar 03 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
更正确的asp冒泡排序
2007/05/24 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
总结4个方面优化Vue项目
2019/02/11 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
使用python实现扫描端口示例
2014/03/29 Python
Python编写检测数据库SA用户的方法
2014/07/11 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Pandas分组与排序的实现
2019/07/23 Python
对django layer弹窗组件的使用详解
2019/08/31 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
矫正人员思想汇报
2014/01/08 职场文书
党员入党表决心的话
2014/03/11 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
关于环保的演讲稿
2014/05/10 职场文书
委托书的写法
2014/09/16 职场文书
java实现对Hadoop的操作
2021/07/01 Java/Android
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏