Vue: @keydown.tab capture également shift + tab

Créé le 6 mars 2017  ·  3Commentaires  ·  Source: vuejs/vue

@keydown.tab capture également shift + tab. Est-ce le comportement attendu ? Si c'est un bug, je ferai une repro.

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.

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes