JQuery: 如何捕获 Textbox 中的 TAB 按键

我想捕获 TAB 按键,取消默认操作并调用我自己的 javascript 函数。

204991 次浏览
$('#textbox').live('keypress', function(e) {
if (e.keyCode === 9) {
e.preventDefault();
// do work
}
});

编辑: 因为你的元素是动态插入的,你必须使用 授权 on(),就像你的例子一样,但是你应该把它绑定到 keydown 事件,因为在 IE 中,keypress 事件不会捕获非字符键:

$("#parentOfTextbox").on('keydown', '#textbox', function(e) {
var keyCode = e.keyCode || e.which;


if (keyCode == 9) {
e.preventDefault();
// call custom function here
}
});

检查一个例子 给你

JQuery 1.9中的工作示例:

$('body').on('keydown', '#textbox', function(e) {
if (e.which == 9) {
e.preventDefault();
// do your code
}
});

以上显示的方法不适合我,可能是我使用位老 jquery,然后最后下面显示的代码片段工程-张贴只是为了以防有人在我相同的位置

$('#textBox').live('keydown', function(e) {
if (e.keyCode == 9) {
e.preventDefault();
alert('tab');
}
});

在标签页上使用向下键的一个重要部分是知道标签页总是尝试做一些事情,不要忘记在最后“返回 false”。

我是这么做的。我有一个运行在。模糊和一个交换窗体焦点位置的函数。基本上,它添加了一个输入到表单的末尾,并在运行模糊计算时到达那里。

$(this).children('input[type=text]').blur(timeEntered).keydown(function (e) {
var code = e.keyCode || e.which;
if (code == "9") {
window.tabPressed = true;
// Here is the external function you want to call, let your external
// function handle all your custom code, then return false to
// prevent the tab button from doing whatever it would naturally do.
focusShift($(this));
return false;
} else {
window.tabPressed = false;
}
// This is the code i want to execute, it might be different than yours
function focusShift(trigger) {
var focalPoint = false;
if (tabPressed == true) {
console.log($(trigger).parents("td").next("td"));
focalPoint = $(trigger).parents("td").next("td");


}
if (focalPoint) {
$(focalPoint).trigger("click");
}
}
});

试试这个:

$('#contra').focusout(function (){
$('#btnPassword').focus();
});

假设您有具有 Id txtName 的 TextBox

$("[id*=txtName]").on('keydown', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
e.preventDefault();
alert('Tab Pressed');
}
});

可以使用 这个 JQueryAPI 捕获事件选项卡。

$( "#yourInputTextId" ).keydown(function(evt) {
if(evt.key === "Tab")
//call your function
});

这对我很有效:

$("[id*=txtName]").on('keydown', function(e) { var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); alert('Tab Pressed'); } });