`

屏蔽"Backspace"(退格)键后退功能

阅读更多
屏蔽"Backspace"(退格)键后退功能2008-01-17 16:18本来这个脚本不难,但是我接到的需求可不太容易实现

创建工单时,屏蔽"Backspace"键后退功能
需求描述: 创建工单时,光标在非文本框内,按"Backspace"键,整个页面会刷新,填写内容全部清空,应屏蔽此功能。

难点在于该页面并不是完全屏蔽掉退格键.而是有选择的屏蔽.

入下面图片中的页面



如果我把退格完全屏蔽掉的话.那用户输入时就不能删除错别字了,所以代码要复杂一点,要判断焦点的所在.

本来页面对象有个方法 hasFocus() , 这个本来应该挺好用的,但是在我的系统里这个方法无法识别.

算了,还有方法..就是判断当前对象是不是document的活动对象:var obj==document.activeElement

我怎么判断活动对象在哪个控件上呢?

没办法..遍历吧,每次按退格键都要遍历一次..除此外想不出别的办法了.,为了让它快一点.我只遍历FORM里的元素, 下面是我的脚本

<body onkeydown="backspace();">
      <form id="FORM_APPLAY" action="xxx">
        xxxxxxx
      </form>
</body>

<script language="JavaScript" type="text/JavaScript">
   //在申请工单时.屏蔽退格键返回上一次浏览页面功能
   function backspace(){
    if(event.keyCode!=8){
     event.returnValue=true;
     return;
    }
    else{
    //如果当前焦点在form里,退格键有效,否则无效
     if(activeElement()){
     //alert("焦点是否在form里: true ");
      event.returnValue=true;
     }else{
     //alert("焦点是否在form里: false ");
      event.returnValue=false;
     }
    }
   }
 
   function activeElement(){
    var forms = document.getElementById("FORM_APPLAY");
    if(forms!=null){
     if(children(forms))
      return true;
    }
     return false;
   }
 
   //迭代判断焦点所在
   function children(obj){
    if(obj==document.activeElement)
     return false;
    //如果有子元素
    if(obj.hasChildNodes()){       
     for(var i=0;i<obj.childNodes.length;i++){
        if(obj.childNodes[i]==document.activeElement&&obj.childNodes[i].tagName.toLowerCase()!="td"){
        if(obj.childNodes[i].type.toLowerCase()=="text"||obj.childNodes[i].tagName.toLowerCase()=="textarea"){
           return true;
        }
       
        }
            
      if(children(obj.childNodes[i]))
       return true;
     }
   
    } 
    return false;
   }

</script>

分享到:
评论

相关推荐

    屏蔽退格键后退网页功能

    当我们在jsp上有个只读文本框的时候,用户在文本框内点击BackSpace会后退网页,此js直接引用到jsp内就可以屏蔽退格键后退网页的功能,删除功能还在。经测试,谷歌,IE都可以用。

    禁用backspace键的后退功能

    在探讨如何禁用backspace键的后退功能之前,我们首先需要理解backspace键在不同情境下的作用。在文本编辑环境中,backspace键主要用于删除光标左侧的字符,而在网页浏览过程中,按下backspace键可能会触发浏览器的...

    js屏蔽退格键(backspace或者叫后退键与F5)

    我们在真实的项目开发中经常会使用JS 对键盘上的一些按键进行禁用,常见的比如说退格键(backspace/ 后退键),我在一个项目中就遇到过在页面编辑的时候禁用掉退格键,因为退格键会发生页面后退,这样编辑的内容都会...

    禁用backspace键的后退

    在计算机使用过程中,Backspace键通常用于撤销输入或者删除文本,但在某些特定场景下,比如在网页浏览或特定应用程序中,我们可能希望禁用它的后退功能,防止用户意外地返回到前一个页面,但同时仍能保留其文本编辑...

    解决Linux内核移植后退格键失效的问题

    解决 Linux 内核移植后退格键失效的问题 在 Linux 移植过程中,经常会遇到退格键失效的问题,这使得用户在输入命令时无法使用退格键删除错误的输入字符。本文将详细阐述如何解决这个问题。 问题现象:在 minicom ...

    Qt软键盘 退格键 英文字符输入

    【Qt软键盘 退格键 英文字符输入】是一个基于Qt框架开发的软件项目,主要功能是提供一个虚拟键盘,允许用户通过鼠标或触摸屏输入英文字符,并且支持退格键操作,方便用户进行文本编辑。这个项目的核心在于利用Qt的...

    chrome52版本以下 屏蔽退格键 回退插件

    chrome52版本以下 屏蔽退格键 回退插件 backspacemeansbackspace V 1.2

    SecureCTL退格键乱

    在IT领域,尤其是在进行Oracle远程登录操作时,用户可能会遇到一个常见的问题——SecureCRT中退格键(Backspace)功能紊乱。这个问题的核心在于SecureCRT与Linux环境下的键盘映射不一致,导致用户在输入命令或路径时...

    js禁止使用退格键

    比如,在表单填写过程中,可能不希望用户能够通过退格键(Backspace)删除已有的文本,尤其是在密码输入框或其他敏感信息输入场景中。本文将详细介绍如何使用JavaScript来实现这一功能。 #### 代码解析 首先,我们...

    js屏蔽backspace后退,又不影响删除输入框文字

    例如,在上面的例子中,我们不希望`Backspace`键导致浏览器后退到上一个页面。这可以通过返回`false`来实现: ```javascript return false; ``` 这将阻止浏览器执行与`Backspace`键相关的默认行为,如后退到上一个...

    Backspace-1.4.1.zip

    概述:Backspace键使退格作为后退导航的快捷方式。 浏览器禁用这种行为,前一段时间,而这个扩展可以帮助谁想要回用户。 描述: Enablegoingbackbypressingbackspacekey Backspace键使退格作为后退导航的快捷方式。 ...

    cocos2d-x 实现手机返回键和键盘退格键(还有其他键)

    ### cocos2d-x 中实现手机返回键和键盘退格键功能 在开发移动游戏或应用程序时,处理用户的输入是一项至关重要的任务。对于基于cocos2d-x的游戏开发来说,能够有效地响应用户通过物理键盘或者虚拟键盘发出的指令是...

    web 屏蔽BackSpace键实例代码

    在Web开发中,有时我们需要避免用户在特定情况下误操作导致页面回退,特别是在表单填写时,用户可能在文本框失去焦点后按下Backspace键,这会导致浏览器执行历史记录中的后退操作,而不是删除文本框内的字符。...

    JQuery防止退格键网页后退的实现代码

    标题中提到的知识点是如何使用JQuery防止用户通过按退格键(Backspace)来实现网页后退的效果。通常在网页浏览中,用户可以使用浏览器的后退按钮来回退到之前的页面,或者按Alt+左箭头组合键来达到同样的目的。在...

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

    为了避免这种情况的发生,可以通过JavaScript来禁用Backspace键的后退功能。 #### 实现原理 Backspace键的功能通常由浏览器的默认行为控制。通过监听键盘事件(如`keydown`或`keypress`),可以捕获Backspace键的...

    键盘上的退格键符号表示方法,批处理中用的。

    在计算机操作中,退格键(Backspace)是键盘上一个非常重要的功能键,它的主要作用是删除光标前的一个字符或符号。在文本编辑、编程、命令行操作等多种场景下,退格键都扮演着不可或缺的角色。在批处理(Batch ...

    jsp要实现屏蔽退格键问题探讨

    本文主要探讨的是如何在JSP中解决一个特定的问题:在文本框允许使用退格键(Backspace)删除字符,但在下拉框中屏蔽退格键以防止误触导致页面回退。 首先,我们来看一下问题背景。在jsp页面中,通常会包含多种输入...

    jquery+js两种方式实现的禁止退格键回退

    在网页应用中,有时我们需要禁用用户使用退格键(Backspace)进行页面回退,以防止意外的数据丢失或功能误触发。标题提到的“jquery+js两种方式实现的禁止退格键回退”主要涉及JavaScript和jQuery这两种方法来阻止...

Global site tag (gtag.js) - Google Analytics