onkeypress flechehaut ?

Eléphant du PHP | 152 Messages

27 nov. 2006, 19:24

Bonjour, j'essai de gérer les fleches haut et bas

Mais quand j'utilise l'évènement onkeypress, rien
ne se passe ?

Voici mon code :

Code : Tout sélectionner

function process_keypress() { document.getElementById("mess").innerHTML = "test1" ; if (40==event.keyCode) { document.getElementById("mess").innerHTML = "test2" ; } } document.onkeypress = process_keypress;
Avec ce code, quand j'appuie sur presque n'importe quelle touche du
clavier, j'ai test1 qui s'affiche, quand j'appuie sur une fleche, test1
ne s'affiche même pas.

Je me demande s'il ne faut pas desactiver les barres de scroll ?

Pouvez-vous m'aider ?

Merci :wink:

Eléphant du PHP | 152 Messages

27 nov. 2006, 21:29

Pour ceux qui chercheront :

Les touches : ctrl alt shift fleche haut .... sont déclanchées
avec keydown pour les autres touches utilisez keypress

merci quand même. :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 nov. 2006, 12:51

pour les autres touches utilisez keypress
C'est pas toujours évident, cela dépend en fait de ce que tu veux faire :) :
onKeyDown permet de capturer l'événement avant que celui-ci n'ait lieu, tandis que onKeyUp permet de le capturer après qu'il se soit produit.

Si je tape une lettre dans un input, avec onKeyDown, le value.length sera à 0 (la lettre n'a pas encore été saisie) tandis qu'avec le onKeypUp il sera de 1 :) (ou de n si j'écrase ma touche comme un malade ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...