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 相关文章推荐
url 编码 js url传参中文乱码解决方案
Apr 11 Javascript
用Javascript实现Windows任务管理器的代码
Mar 27 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
Dec 03 Javascript
JavaScript实现图片轮播组件代码示例
Nov 22 Javascript
javascript-解决mongoose数据查询的异步操作
Dec 22 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
Jan 03 Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 Javascript
JS闭包可被利用的常见场景小结
Apr 09 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
深入理解 Koa 框架中间件原理
Oct 18 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
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
javascript innerHTML使用分析
2010/12/03 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
微信小程序 轮播图实现原理及优化详解
2019/09/29 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
wxpython 学习笔记 第一天
2009/02/09 Python
Python修改MP3文件的方法
2015/06/15 Python
python连接字符串的方法小结
2015/07/13 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
通过实例解析python描述符原理作用
2020/01/22 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
手机促销活动方案
2014/02/05 职场文书
档案管理员岗位职责
2015/02/12 职场文书
nginx配置指令之server_name的具体使用
2022/08/14 Servers