我正在尝试获取focusin
和focusout
的{{1}}和tab
密钥代码。但只获得shift+tab
作为值。
如何在输入字段上获取0
或tab
上的值?
这是我的尝试:
shift+tab
答案 0 :(得分:2)
如您所见,focusout
事件未在事件对象中公开which
属性。您必须处理keydown
事件。 (您无法使用keyup
,因为当您按下Tab键时元素会失去焦点,而不是在您放松时,因此您的文本框无法获得keyup
个事件当你离开它时。)
这里的一些代码似乎正在寻找你正在寻找的东西:
var cKey;
var cKeyShifted;
$('body').on('keydown', '#textbox', function(e) {
cKey = e.which;
cKeyShifted = e.shiftKey;
});
$('body').on('focusout', '#textbox', function(e) {
$('#log').html('cKey = ' + cKey + ' ' + cKeyShifted);
//got to clear the variables, otherwise you can tab out of the box, click
//back in, click out of it again, and they will not have changed
cKey = 0;
cKeyShifted = false;
});
因此,将e.which
存储到keydown
事件中的变量中。然后在focusout
事件中,评估(并清除)变量。如果它不是9,那么你没有使用tab键失去焦点。
请注意,tab
和shift+tab
都具有相同的e.which
值。您必须评估shiftKey
事件的keydown
属性,以确定是否使用Tab键按下Shift键。