JavaScript可以';t捕获";班次+;标签";结合
无论出于什么原因,我都无法捕获“SHIFT+TAB”组合。 我正在使用最新的jQuery 如果我使用其他ajax/javascript等,结果也是一样的 这是一个简单的例子,应该工作,因为我目前的理解 event.which或event.KeyCode始终是“未定义”的,只有shiftKey存在于涉及“SHIFT+TAB”或向后键盘遍历的场景中,这通常是基于windows的应用程序/web或其他应用程序固有的JavaScript可以';t捕获";班次+;标签";结合,javascript,jquery,tabs,shift,Javascript,Jquery,Tabs,Shift,无论出于什么原因,我都无法捕获“SHIFT+TAB”组合。 我正在使用最新的jQuery 如果我使用其他ajax/javascript等,结果也是一样的 这是一个简单的例子,应该工作,因为我目前的理解 event.which或event.KeyCode始终是“未定义”的,只有shiftKey存在于涉及“SHIFT+TAB”或向后键盘遍历的场景中,这通常是基于windows的应用程序/web或其他应用程序固有的 function ShiftTab() { debugge
function ShiftTab()
{
debugger;
if(event.KeyCode == 9 && event.shiftKey) // neither this line nor the following work
// if (event.which == 9 && event.shiftKey) // shift + tab, traverse backwards, using keyboard
{
return true;
}
else
{
return false;
}
}
这似乎是与制表符顺序相关的另一项,不再像在基于Microsoft.Net WinForm/WebForm的应用程序中那样正常工作。如果您使用的是jQuery,代码应该是这样工作的。确保
keyCode
为小写。此外,jQuery将keyCode
规范化为,其中:
$(document).keyup(function (e) {
if (e.which === 9 && e.shiftKey) {
ShiftTab();
}
});
如果您喜欢简洁的JavaScript:
$(document).keyup(function (e) {
e.which === 9 && e.shiftKey && ShiftTab();
});
jQuery 1.7+on
语法:
$(document).on('keyup', function (e) {
e.which === 9 && e.shiftKey && ShiftTab();
});
我创建了一个连接到按钮onkeydown事件的函数。我使用了onkeydown,因为onkeypress不会捕获我的制表键
function ShiftTab(evt) {
var e = event || evt; // for trans-browser compatibility
var charCode = e.which || e.keyCode; // for trans-browser compatibility
if (charCode === 9) {
if (e.shiftKey) {
$('#controlName').focus();
return false;
} else {
return true;
}
}
我采用这种方法来处理两个具体问题:
onkeypress无法捕获tab按键
当点击shift tab时,按下shift键将触发该功能,因此我必须嵌套shiftkey修改器检查
在按键事件中使用相同的代码。
该选项卡在按键和向上键之间更改元素。
这里我们得到event.key=tab和event.shiftKey=true。如果这个问题已完成,您应该接受一个答案:)我的意思是,使用keyup时,这并不总是有效的。这是因为,例如,我首先放开了shift键。这将返回9和false,因为按下了tab,但没有按下shift。若你们先放开tab,那个就没问题了。但使用keydown键可以工作,因为您按下tab键,并且已经按下了shift键。这对我来说不起作用,无论我按什么顺序释放tab
。我不知道为什么我的代码不能识别与中情局的标签一起按下的shift
键我想博基在他的答案中找到了你。但基本上onKeyUp会触发两次,每个键(Shift和Tab)触发一次。默认情况下,事件处理程序不知道SHIFT在任何方面都是特殊的-它只是另一个键。您必须检查KeyDown或KeyPress上的事件,以便在tab注册时检查SHIFT。