jQuery:keyup为TAB键?

前端之家收集整理的这篇文章主要介绍了jQuery:keyup为TAB键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我有一些麻烦让我的脚本运行,如果按Tab键。经过一些快速搜索,Tab的charcode是9.另外,虽然我们在说,有没有更好的方法来检查一个键是否按下没有使用字符码?我问,因为我不断得到以下警告使用firebug时使用charcode:

The ‘charCode’ property of a keyup event should not be used. The value is meaningless.

无论如何,它仍然可以工作,所以这不是问题。这是我使用的代码

$('/* my inputs */').keyup(function(e) {
   console.log('keyup called');
   var code = e.keyCode || e.which;
   if (code == '9') {
     console.log('Tab pressed');
   }
});

使用上面的代码,控制台留空,没有添加(使用Firebug)。当然,我试过实际做的东西,而不是日志文本,但没有执行。所以,任何人都可以看到为什么这不工作?有没有更好的方法来检查是否按下一个键?

提前致谢。

解决方法

我的预期是,当你按Tab键,你的窗体的输入失去焦点,在键盘发生之前。尝试改变绑定到正文,像这样:
$('body').keyup(function(e) {
    console.log('keyup called');
    var code = e.keyCode || e.which;
    if (code == '9') {
    alert('Tab pressed');
    }
 });

然后,如果这是工作(它为我)尝试改变绑定到keyDown,而不是返回false。这样你可以实现自己的自定义行为。

$('.yourSelector').keydown(function(e) {
   console.log('keyup called');
   var code = e.keyCode || e.which;
   if (code == '9') {
     alert('Tab pressed');

   return false;
   }

});

其中一个应该工作…如果它的身体,你可以附加一个keydown处理程序的身体,然后如果它的选项卡,找到具有焦点的字段(我认为有函数.hasFocus()?),如果它是一个想,继续并返回假。否则,让浏览器做它的事情。

如果您想使用制表符字符更新字段,请在回调中尝试:

var theVal = $(this).val();
theVal = theVal + ' ';
$(this).val(theVal);

没有测试它,但它应该工作。你也可以附加3或4个空格,而不是tab字符,如果它给你麻烦。

猜你在找的jQuery相关文章