JavaScript屏蔽Backspace键的实现代码

今天在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键的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例

    屏蔽f12审查 <script> document.onkeydown = function () { if (window.event && window.event.keyCode == 123) { alert("F12被禁用"); event.keyCode = 0; event.returnValue = false; } if (window.event && window.event.keyCode == 13) { windo

  • javascript容错处理代码(屏蔽js错误)

    有时候大家来浏览网页的时候发现IE浏览器左下角总有个黄色错误标志,有时候更是直接弹出错误无法继续浏览页面,这样对于网站的正规性与权威性发展不利. 国外银行页面就是因为这样的错误,导致用户大量流失不敢用这个银行的网上银行等导致损失惨重. 所以一个想要在用户体验与公司实力上都是不容出现的错误,就是不影响使用也不能让用户反感,我们一直致力于为大家提高更好的代码,所以这里我们将会大家整理一些常用的代码,使用方法什么,希望大家以后能越来越支持我们,让我们共同发展. 第一种:我们在用的 <SCRIPT la

  • javascript屏蔽右键代码

    javascript屏蔽右键 复制代码 代码如下: <span style="font-size:18px;color:#ff0000;"><strong>document.oncontextmenu=function(e){ return false; };</strong></span>

  • JS 屏蔽按键效果与改变按键效果的示例代码

    功能键F1-F2:112-123 a-b:65-90 数字键:0-9:48-57 ESC:27 退格键:8 回车:13 shift:16:Ctrl:17:Alt:18 空格:32 Insert:45:Delete:46 复制代码 代码如下: function document.onkeydown(){                //网页内按下回车触发  if(event.keyCode==13)  {   document.getElementById("loginbtn").cl

  • js在输入框屏蔽按键,只能键入数字的示例代码

    复制代码 代码如下: <script language="javascript">function GetInput(){//屏蔽非数字和非退格符    var k = event.keyCode;   //48-57是大键盘的数字键,96-105是小键盘的数字键,8是退格符←    if ((k <= 57 && k >= 48) || (k <= 105 && k >= 96) || (k== 8)){     r

  • JavaScript屏蔽Backspace键的实现代码

    今天在IE浏览器下发现,当把使用readonly="readonly"属性将文本框设置成只读<input type="text" readonly="readonly"/>时有一个奇怪的问题:如果光标进入只读文本框,然后按下Backspace键,就会跳转到上一个页面,效果就像点击了浏览器的后退按钮返回前一个页面一样,而在火狐和google下没有这样的问题出现,为了解决这个问题,写了一个如下的处理方法,如果文本框是只读的,那么就禁用Ba

  • web 屏蔽BackSpace键实例代码

    在web端,输入的时候,很容易在文本框消失焦点的时候,点击退格键,页面就回退了,下面是一种屏蔽页面回退键的方法(在网上找的,具体的地址忘记了!!!). //处理键盘事件 禁止后退键(Backspace)密码或单行.多行文本框除外 function forbidBackSpace(e) { var ev = e || window.event; //获取event对象 var obj = ev.target || ev.srcElement; //获取事件源 var t = obj.type ||

  • javascript实现网页屏蔽Backspace事件,输入框不屏蔽

    下面通过javascript代码实现网页屏蔽Backspace事件,输入框不屏蔽,具体代码如下: document.onkeydown = function (e) { var code; if (!e){ var e = window.event;} if (e.keyCode){ code = e.keyCode;} else if (e.which){ code = e.which;} //BackSpace 8; if ( (event.keyCode == 8) && ((eve

  • JavaScript如何禁止Backspace键

    今天在IE浏览器下发现,当把使用readonly="readonly"属性将文本框设置成只读<input type="text" readonly="readonly"/>时有一个奇怪的问题:如果光标进入只读文本框,然后按下Backspace键,就会跳转到上一个页面,效果就像点击了浏览器的后退按钮返回前一个页面一样,而在火狐和google下没有这样的问题出现,为了解决这个问题,写了一个如下的处理方法,如果文本框是只读的,那么就禁用Ba

  • Android 屏蔽和捕获Home键的示例代码

    在Level5以上(包含)中,Activity类中的方法:public void onAttachedToWindow ()就能对Home键进行捕获. 具体代码如下: MainActivity.java package com.lingdududu.test; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.WindowManager;

  • javascript 屏蔽鼠标键盘的几段代码

    //屏蔽鼠标右键.Ctrl+n.shift+F10.F5刷新.退格键  function KeyDown(){  if ((window.event.altKey)&&  ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ←  (window.event.keyCode==39))){ //屏蔽 Alt+ 方向键 →  alert("不准你使用ALT+方向键前进或后退网页!");  event.returnValue=false; 

  • 屏蔽up键禁止游戏运行脚本分享

    侄子总在我本本上玩赛车,键盘快被按塌了.这个autoit脚本的原理是屏蔽UP键,当他的面告诉他键盘坏了当然不行,为了让他信服,我设置了延迟20分钟,下次先打开脚本,再打开游戏,侄子玩着玩着出现问题,大概就不用我过多解释了.然后删除游戏 增强版,先判断游戏是否运行,如果是游戏第一次运行,那么20分钟后拦截UP键为了不影响正常的工作,同时造成游戏按键损坏的假象随后只要检测到游戏运行就拦截UP键,反之则不拦截,检测的间隔是1秒. 复制代码 代码如下: sleep(1200000)HotKeySet("

  • js禁止Backspace键使浏览器后退的实现方法

    在项目中遇到按下Backspace键让浏览器后退的问题,上网搜了几种解决方案都不太理想.于是集众人之智,采众家之长,归纳如下: 1.在公用js中定义阻止Backspace的方法 function banBackSpace(e){ var ev = e || window.event; //各种浏览器下获取事件对象 var obj = ev.relatedTarget || ev.srcElement || ev.target ||ev.currentTarget; //按下Backspace键

  • JavaScript下拉菜单功能实例代码

    本文给大家分享一段实例代码关于js实现下拉菜单功能,具体代码如下所示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>下拉菜单</title> <style type="text/css"> body, ul, li { margin: 0; padding: 0; fo

随机推荐