如何在文本框中按下Tab键后触发事件

4
我想在文本框内按下 Tab 键时触发事件,例如显示警告消息。
<input type="text" />

$("input").blur(function (e) {
   if (e.which == 9)
       alert("Hurray!!!");
});

我希望的是,每当我在文本框中输入内容并按下“Tab”键时,会发生某些事情。
我正在使用jquery1.7.2.min.js。
我真的不知道我是否做得对。
演示请参见http://jsfiddle.net/QfCpC/
7个回答

13
$("input").keydown(function (e) {

   if (e.which == 9)
       alert("Hurray!!!");
});

Fiddle演示


1
有些情况下,我不得不使用 window.event.keyCode 而不是 e.which。这取决于浏览器。 - Matthew Shea
太棒了!如果你正在使用AngularJS,那么你也可以使用ng-keydown :) - Manish Gupta

2

2
<input type="text" />

$("input").keydown(function (e) {
   if (e.which == 9)
        $('#someButton).trigger('click');//or you can directly call the handler also
});

2
$(document).ready(function() {

    $("input").bind("keydown",function (e) {

   if (e.which == 9)        
       alert("Hurray!!!");
});
});

这里有一个演示...

http://jsfiddle.net/QfCpC/


1

1
原因是当您按下“tab”键时,会发生两个操作:
  1. tab按钮的KeyUp事件
  2. 输入类型字段的模糊动作
根据您的代码,您正在将事件监听器添加到模糊事件上...而模糊事件没有提供按键绑定属性。
因此,为了实现此功能,您需要绑定“keydown”事件。
$("input").keydown(function (e) {
  if (e.which == 9)
       alert("YEYYYYYYY!!!");
});

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接