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模拟select,jselect的方法实现
Nov 08 Javascript
JavaScript通过RegExp实现客户端验证处理程序
May 07 Javascript
用JS做的简单的可折叠的两级树形菜单
Sep 21 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
JavaScript 浏览器对象模型BOM使用介绍
Apr 13 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
Dec 13 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
Javascript面试经典套路reduce函数查重
Mar 23 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
Dec 22 Javascript
JS实现打砖块游戏
Feb 14 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新手上路(十四)
2006/10/09 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
清空上传控件input file的值
2010/07/03 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
Element中Slider滑块的具体使用
2020/07/29 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python cx_freeze打包工具处理问题思路及解决办法
2016/02/13 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
2013年高中生自我评价
2013/10/23 职场文书
岗位聘任书范文
2014/03/29 职场文书
项目经理任命书内容
2014/06/06 职场文书
师德师风自查材料
2014/10/14 职场文书
护士年终个人总结
2015/02/13 职场文书
生死抉择观后感
2015/06/09 职场文书
龙猫观后感
2015/06/09 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
python保存图片的四个常用方法
2022/02/28 Python