@keydown.tab capture également shift + tab. Est-ce le comportement attendu ? Si c'est un bug, je ferai une repro.
Oui, c'est prévu. Vous devez explicitement vérifier que la touche shift n'est pas enfoncée
Voici le balisage de la solution pour y parvenir :
<your-element @keydown.tab="handleTabPress(someData, $event)"></your-element>
Dans la fonction de gestionnaire, vous pouvez détecter si SHIFT est maintenu en examinant le $event
:
handleTabPress(someData, e) {
// if SHIFT key is held to navigate backwards, exit through this gate
if (e.shiftKey) {
console.log('halting event due to SHIFT+TAB');
return;
}
// otherwise, execute normal logic
console.log('tab was pressed', someData);
},
Juste pour mettre à jour ceci, puisque la vue 2.5.0 a le modificateur .exact, qui empêche exactement ce comportement :
@keydown.tab.exact="dostuff()"
Cela ne fonctionnera que lorsque la tabulation est enfoncée, pas lorsque la touche shift + tab est enfoncée. Voir https://vuejs.org/v2/guide/events.html#exact -Modifier pour en savoir plus.
Commentaire le plus utile
Juste pour mettre à jour ceci, puisque la vue 2.5.0 a le modificateur .exact, qui empêche exactement ce comportement :
@keydown.tab.exact="dostuff()"
Cela ne fonctionnera que lorsque la tabulation est enfoncée, pas lorsque la touche shift + tab est enfoncée. Voir https://vuejs.org/v2/guide/events.html#exact -Modifier pour en savoir plus.