there is a input where blur() event is trigger, and this input, i want to detect if was triggered with a Tab key, shift+tab keys or a click out. Detecting with just Tab key and click out, i've got. But the Shift+Tab keys, i couldn't. i've tried detect with window.event.shiftKey
, or using on() of JQuery's method, and attach keyup
, keydown
, keypress
to see if detect one first of the other. But, was unsuccessful. How can i detect this ?
I built these codes, but no one works:
1.
var shift_key; var key = window.event.keyCode;
$("#address").on('focusout blur keyup keydown keypress',function(e){
if(e.type == 'keyup' || e.type == 'keydown' || e.type == 'keypress'){
if(key == 16){
shift_key = true;
}
}else if((e.type == 'focusout' || e.type == 'blur') && key == 9){
if(shift_key == true){
document.getElementById('city').focus();
}
}
});
(This one, i tried to catch one the Shift code and after the Tab code. 'Cause when triggers a key event he doesn't blur of the input, so, i tried to catch in
keyup
,keydown
orkeypress
the Shift key. And when the Tab were pressed, it automatically blur of the input, so, i tried to catch the Tab key)$("#address").on("keyup keydown keypress", function () { var shift_key = key; setTimeout(function(){ $("#address").on("blur focusout", function () { var shift_key = key; }); }, 400); });