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上传图片前预览图片兼容大多数浏览器
Oct 25 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
使用js实现的简单拖拽效果
Mar 18 Javascript
javascript实现跨域的方法汇总
Jun 25 Javascript
H5用户注册表单页 注册模态框!
Sep 17 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
Nov 27 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
vue路由教程之静态路由
Sep 03 Javascript
js实现前端界面导航栏下拉列表
Aug 27 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
Home Coffee Roasting
2021/03/03 咖啡文化
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHP实现将标点符号正则替换为空格的方法
2017/08/09 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
slice函数的用法 之不错的应用
2006/12/29 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
OpenCV 模板匹配
2019/07/10 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
使用css实现android系统的loading加载动画
2019/07/25 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
eBay德国站:eBay.de
2017/09/14 全球购物
优秀老师事迹材料
2014/02/05 职场文书
品酒会策划方案
2014/05/26 职场文书
开服装店计划书
2014/08/15 职场文书
搭讪开场白台词大全
2015/05/28 职场文书