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

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

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

入下面图片中的页面

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

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

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

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

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

<body οnkeydοwn="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>

屏蔽Backspace(退格)键后退功能相关推荐

  1. js屏蔽键盘退格键(backspace或者叫后退键)1

    其实说禁用也不是完全禁用,后退键在各浏览器下默认为点击了一下后退按钮,只要保证正常的文字录入还可以用,其他情况下的退格键一律禁掉.看代码吧. Js代码   <script type=" ...

  2. javascript 模拟退格键_javascript禁止Backspace退格键的多种方法

    方法1,采用键盘监听,处理键盘事件,处理方法是将type="text" "password"及"textarea"的输入框以外的元素做了退格 ...

  3. 屏蔽浏览器退格键页面后退

    2019独角兽企业重金招聘Python工程师标准>>> window.onload = function () {document.getElementsByTagName(&quo ...

  4. crt链接linux后不能输入退格,SecureCRT 退格键等不好用

    1.MongoDB Shell中退格键使用的问题. 利用SecureCRT工具访问linux的时候,在使用MongoDB的交互式shell的时候,退格键(Backspace)无法使用,导致无法修改输入 ...

  5. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的问题解决

    用SSH调用SQLPLUS输入SQL语句,按backspace(退格键)出现 ^H 的乱码如下所示: [oracle@even ~]$ sqlplus / as sysdba SQL*Plus: Re ...

  6. linux中退格出现乱码,SSH中的SQL命令按退格键出现乱码的有关问题解决

    SSH中的SQL命令按退格键出现乱码的问题解决 用SSH调用SQLPLUS输入SQL语句,按backspace(退格键)出现^H的乱码如下所示: [oracle@even ~]$ sqlplus / ...

  7. Ubuntu中使用vi编辑时方向键乱码或退格键不能使用解决方法

    1.引言 Ubuntu中使用vi编辑文本文件时,会出现按上下左右方向键时,出现ABCD等字符,而且退格键也不起作用,如何解决这个问题? 2.解决方法 2.1 原因 由于Ubuntu 预安装的是vim ...

  8. JS屏蔽功能类(屏蔽F5,退格键,空格键......

    1.屏蔽功能类ITPUB个人空间Ar~${ d8L4Y ITPUB个人空间0O:n2A d;w s 1.1 屏蔽键盘所有键ITPUB个人空间\3Z0Ce5{ 4i#tb(G` \22328375< ...

  9. Google Chrome 将禁止“退格键”作为后退按钮使用

    在Google Chrome浏览器中,"退格键(Backspace)"具有"后退/转到上一页"的功能,如果用户在一个页面输入了内容,不小心点击退格键不是删除一个 ...

最新文章

  1. Oracle中数据导出成CVS,EXCEL
  2. tensorflow详解-tf.nn.conv2d(),tf.nn.max_pool()
  3. 【火爆】9张图让你知道大佬们的互联网思维
  4. matlab做pca人脸识别,[转载]一个修改后的PCA进行人脸识别的Matlab代码,识
  5. linux fedora配置.myBase.ini文件
  6. 十大经典排序算法动画与解析,看我就够了!(配代码完全版)
  7. CLR运行时细节 - Method Descriptor
  8. 逻辑分析推理(戴帽子问题)博弈
  9. 戴尔笔记本电脑开机黑屏怎么办_戴尔笔记本电脑充不进电怎么办
  10. (转载)lepaiwed网站代码【全】
  11. firefox android 插件,Firefox for Android将很快迎来更多扩展插件
  12. 九号机器人田奇峰_九号公司成功登陆科创板
  13. [转载]测试程序执行时间
  14. linux安装jdk(二)
  15. QT 处理TCP粘包问题
  16. 删除注册表里没用的服务
  17. iphone捷径大全_iPhone捷径,助您一臂之力
  18. 大学生涯(大四篇)毕业事件指南
  19. 【Java】实现wav格式音乐的 播放、停止、循环播放、音量调节
  20. MATLAB平台文字识别算法实现

热门文章

  1. VS2010 编写代码时的光标变成了黑块,黑块选中了字,再输入的时候就会替换掉那个黑块选中的字
  2. 恢复受损Word文档的9种方法--旧时光 oldtimeblog
  3. iOS开发 给view绘制虚线边框
  4. Lawliet|面向对象/面向过程
  5. 象形文字--中文自然语言理解的突破
  6. “戏”说设计模式——单例模式
  7. java实现第四届蓝桥杯猜灯谜
  8. input中鼠标点击清楚按钮之后的聚焦回input的方法
  9. 海信电视微助手怎么连接电脑连接网络连接服务器,海信智能电视连接手机的教程详解!...
  10. 上海计算机二级报名无法选择,2020年二级计算机怎么报名上海