Une partie importante de l'utilisation d'une touche vers le bas sur tab est de savoir que tab va toujours essayer de faire quelque chose déjà, n'oubliez pas de "retourner false" à la fin.
Voici ce que j'ai fait. J'ai une fonction qui s'exécute sur .blur et une fonction qui change l'endroit où se trouve le focus de mon formulaire. En gros, elle ajoute une entrée à la fin du formulaire et s'y rend tout en effectuant des calculs sur le flou.
$(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");
}
}
});