ExtJS下禁用BackSpace键,但可以删除文本内容的方法

 转自:http://7626.net/?p=270

浏览器有个很BT的默认设置,就是当光标不在输入框的时候,按BackSpace键后默认动作是后退至上一页。在各类WebApp下,这个设置是无法忍受的。

在ExtJS框架下可以这样:

//禁用Backspace鍵後退
Ext.EventManager.on(Ext.isIE ? document : window, 'keydown', function (e, t) {

if (e.getKey() == e.BACKSPACE &&e.browserEvent.srcElement.type != 'text' &&
e.browserEvent.srcElement.type != 'textarea' && e.browserEvent.srcElement.type != 'password') {
e.stopEvent();
}

});

如果是纯JS下,可以这样:


window.onload=function(){

 /****************************

 * 作者:q821424508@sina.com *

 * 时间:2012-08-20 *

 * version:2.0 *

 * *

 ****************************/

 document.getElementsByTagName("body")[0].onkeydown =function(){


 //获取事件对象

 var event = window.event || arguments[0];

 if(event.keyCode==8){//判断按键为backSpace键

 //获取按键按下时光标做指向的element
 var elem = event.srcElement || event.currentTarget;

 //判断是否需要阻止按下键盘的事件默认传递
 var name = elem.nodeName;

 if(name!='INPUT' && name!='TEXTAREA'){

 return _stopIt(event);

 }

 var type_e = elem.type.toUpperCase();

 if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){

 return _stopIt(event);

 }

 if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){

 return _stopIt(event);

 }

 }

 }

 }

 function _stopIt(e){

 if(e.returnValue){

 e.returnValue = false ;

 }

 if(e.preventDefault ){

 e.preventDefault();

 }

return false;

 }
方法二来自http:
//q821424508.iteye.com/blog/1587025

 

转载于:https://www.cnblogs.com/280850911/archive/2013/01/23/2873535.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值