如何解决屏蔽delete键引起的回退问题,特别是针对IE只读输入框?
- 内容介绍
- 文章标签
- 相关推荐
本文共计153个文字,预计阅读时间需要1分钟。
当使用IE浏览器时,按Delete键会导致页面回退,从而导致输入的数据丢失。以下是将此JavaScript代码放置在页面底部的代码示例:$(document).keydown(function(event){…});注意:在jQuery中,event已经被封装,下面的语句已无意义,event总是会被封装。
// 将此js代码放在页面的底部 $(document).keydown(function(event){ // 在jquery中event已被封装,下面的语句没有意义了,event总是会被传递 // event = event || window.event; // IE的event.keyCode和非IE的event.charCode被封装成event.which if(event.which == 8){ //当前焦点不在input或textarea时禁用delete键 var name = document.activeElement.tagName.toUpperCase(); if(name != 'INPUT' && name != 'TEXTAREA'){ return false; } // readonly element in IE if((name == 'INPUT' || name == 'TEXTAREA') && document.activeElement.readOnly){ return false; } } });
本文共计153个文字,预计阅读时间需要1分钟。
当使用IE浏览器时,按Delete键会导致页面回退,从而导致输入的数据丢失。以下是将此JavaScript代码放置在页面底部的代码示例:$(document).keydown(function(event){…});注意:在jQuery中,event已经被封装,下面的语句已无意义,event总是会被封装。
// 将此js代码放在页面的底部 $(document).keydown(function(event){ // 在jquery中event已被封装,下面的语句没有意义了,event总是会被传递 // event = event || window.event; // IE的event.keyCode和非IE的event.charCode被封装成event.which if(event.which == 8){ //当前焦点不在input或textarea时禁用delete键 var name = document.activeElement.tagName.toUpperCase(); if(name != 'INPUT' && name != 'TEXTAREA'){ return false; } // readonly element in IE if((name == 'INPUT' || name == 'TEXTAREA') && document.activeElement.readOnly){ return false; } } });

