焦点离开输入框停止监听键盘按键,怎么做?

BILLSSJONE 2011-10-15 12:32:37
function entkeyboard(evt){
var evt=evt?evt:(window.event?window.event:null);
.........

}
在输入框上onkeydown=entkeyboard(event),当焦点在输入框时开始监听按哪个键盘,但是发现焦点离开后还在监听,我想焦点离开输入框停止监听键盘,怎么做?怎么停止这个监听函数?谢谢
...全文
206 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangws 2011-10-15
  • 打赏
  • 举报
回复
没了焦点肯定不会触发keydown事件的,是不是其他input触发了
豆虫 2011-10-15
  • 打赏
  • 举报
回复
//写一个移除事件的函数 要考虑兼容多浏览器 如下:
function removeEvent(oTarget,sEventType,funName){
if(oTarget.removeEventListener){
oTarget.removeEventListener(sEventType,funName, false);
}else if(oTarget.detachEvent){
oTarget.detachEvent("on"+sEventType,funName);
}else{
oTarget["on"+sEventType]=null;
}
};
//删除掉
var targetObj = document.getElementById('输入框的id');
removeEvent(targetObj,'keydown',entkeyboard);

BILLSSJONE 2011-10-15
  • 打赏
  • 举报
回复
怎么移除?函数entkeyboard=null这样可以吗?或者怎么写?
豆虫 2011-10-15
  • 打赏
  • 举报
回复
不可能的 你既然给输入框加了onkeydown事件 其失去焦点后是不会再出发onkeydown的
这和blur本来没有关系 还是得看下你的代码 如果确实是没有什么问题再走最后一招棋 在onblur事件中移除onkeydown事件
先晒下你的代码吧~~~
BLUE_LG 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 billssjone 的回复:]
怎么移除?函数entkeyboard=null这样可以吗?或者怎么写?
[/Quote]
entkeyboard=function(){}
BLUE_LG 2011-10-15
  • 打赏
  • 举报
回复
很好奇,失去焦点怎么可能触发keydown事件???

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧