Empecher le comportement des touches 'Entrée, Haut et Bas dans un textarea Vue js


#1

Bonjour,

J’ai un textarea dans lequel je voudrais empêcher les comportements habituels des touches Entrée ( retour chariot) et Haut / Bas ( navigation entres les lignes s’il y en a) car j’en ai besoin lors du focus sur ce textarea.
J’ai essayer avec des @keyup.enter.self.prevent ou en mettant une fonction sensé intercepté l’action de la touche Entrée mais rien n’y fait.
J’ai trouvé du code de ce style là mais je n’arrive pas à savoir où l’intégré ( propriété computed, directives ou autre) dans ma vue :
textarea.onkeypress = function(e) {
if (e.keyCode === 13) {
if (e.preventDefault) e.preventDefault();
return false;
}
}
Si quelqu’un à des pistes ça m’aiderait. Merci.


#2

Hello,

Je pense que tu devrais utiliser le modifier stop pour eviter la propagation de ton evenement :
@keyup.enter.prevent.stop
Tu peux aussi essayer avec keydown plutot que keyup

J’ai trouvé du code de ce style là mais je n’arrive pas à savoir où l’intégré

Ce genre de code doit aller dans la fonction mounted, mais normalement tu ne devrais pas en avoir besoin.

{
    mounted: function () {
        // use $refs to find `textarea`
        textarea.onkeypress = function(e) {
            if (e.keyCode === 13) {
                e.preventDefault()
                e.stopPropagation()
                return false
            }
        }
    },

    methods: {

    }
}

#3

Salut Nicolas,

Merci pour tes pistes j’ai pas essayé avec un keydown je test ça et je reviens donner le résultat :wink:


#4

Ahah mortel ça marche je te remercie j’ai cherché toutes les combinaisons de .prevent.self.useless mais pas sur le keydown ^^