停止TAB键事件传播在chrome后的一个动作
stop tab key event propagation in chrome after an action
在Chrome中,我试图拦截tab键按下停止所有正常tab键行为并执行我自己的动作。
如果我只做这些,我可以停止默认行为。但是如果执行一个动作,然后尝试停止默认行为,它阻止焦点转移到下一个输入,但它在当前输入中放置一个表空间。
如果问题仍然不清楚,请查看显示问题的jsFiddle
这是我尝试过的,(注意,下面所有的工作都可以在firefox中完成我需要的工作,而不是在chrome中)
<input type="text" class="next-tab"/>
<input type="text" class="next-tab2"/>
<input type="text" class="next-tab3"/>
$('.next-tab').keydown(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
console.log(code);
if (code == 0 || code == 9){
e.preventDefault();
e.stopPropagation();
}
// this only blocks the propagation of the tab keypress event, and works as expected:
});
$('.next-tab2').keydown(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
console.log(code);
if (code == 0 || code == 9){
alert("test");
e.preventDefault();
e.stopPropagation();
}
});
$('.next-tab3').keydown(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
console.log(code);
if (code == 0 || code == 9){
e.preventDefault();
e.stopPropagation();
alert("test");
//putting the alert after doesnt help
}
});
如何阻止表空间被添加到输入?
仅当动作包含alert()
、confirm()
或prompt()
时出现此问题。这可能与它们重新进入事件循环的方式有关。因此,从代码中删除这些调试语句,它应该可以工作。
相关文章:
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 引导选项卡 - 类型错误 .tab 不是一个函数
- 当按 Tab 键经过最后一个单元格时,自动在 ng-grid 中添加行
- 在带有 TAB 键后按 Enter 触发一个按钮
- 是否有一种方法可以通过编程触发TAB键将焦点移动到下一个可聚焦的元素
- 多次点击超链接,不应该打开多个选项卡/窗口.只有一个窗口.TAB应该打开
- 我如何得到chrome.tab .update重定向到一个url
- 在yui的TAB标签中添加一个复选框
- 使TAB键在一个表单的输入之间循环
- 根据CRM 2011中另一个字段的值禁用Tab
- 为什么不模拟tab键将焦点移到下一个输入字段?
- 我怎么知道一个特定的事件.keyCode对应一个字符,而不是一个命令键(如箭头、tab或enter)
- 如何在输入上创建两个按钮,如Tab(下一个焦点)按键和Shift+Tab(上一个焦点)
- 防止按tab键访问已禁用的inputText并关注下一个启用的输入
- JS IPC;从一个TAB发送消息到另一个TAB
- 如何在填充4个字符后移动下一个输入TAB
- 停止TAB键事件传播在chrome后的一个动作
- firefox插件-需要在JavaScript中使用keycodes为tab键分配一个事件监听器
- 如何始终显示第一个 TAB
- HTML中的TAB:默认选择第一个TAB