Javascript evenement touche entrée du clavier [Résolu/Fermé]

ponpon - 12 févr. 2006 à 14:28 - Dernière réponse : -Yox- 46 Messages postés samedi 9 février 2013Date d'inscription 9 octobre 2017 Dernière intervention
- 9 oct. 2017 à 01:06
Bonjour,
J'aimerai savoir si quelqu'un peut m'indiquer comment faire pour lancer une fonction en appuyant sur entrée.

En fait j'inscrit un numéro dans un champs :

<input name="ndi" maxlength="10" style="width: 100px;"
onkeypress="NDI();" type="text">

Et quand j'appuie sur une touche sa lance la fonction NDI mais j'aimerai spécifier que cela soit la touche entrée du clavier.
Car certaine personne entre le numéro chiffre par chiffre et sa lance a chaque fois la fonction...

Merci d'avance
Afficher la suite 

23 réponses

+98
Utile
4
Code à mettre dans <body>
onKeyPress="if (event.keyCode == 13) mafonction()"
Pratique pour valider un formulaire par exemple...
Cette réponse vous a-t-elle aidé ?  
Merci, c'est nickel, pas la peine d'aller plus loin ^^
Parfait, merci beaucoup.
Utilisateur anonyme - 27 mai 2014 à 16:52
Salut !

Je me permet de r'ouvrir ce post un peu vieux, pour ajouter un conseil :

Il vaut mieux mettre l'évenement onKeyPress (qui au passage ne prend pas de majuscule si on le met dans du code HTML) sur un <input> que sur <body>

En effet, si vous avez plusieurs formulaires dans la page, vous allez devoir les différencier en regardant qui a envoyé l'évennement, ... et là ça va être body :)

Deuxième raison : en mettant keypress sur vos input plutot que body, vous déchargez le processeur. Puisqu'il n'y aura des évennements générés que lorsque vous êtes en train d'éditer un champ de formulaire.
-Yox- 46 Messages postés samedi 9 février 2013Date d'inscription 9 octobre 2017 Dernière intervention - 9 oct. 2017 à 01:06
Merci !
+8
Utile
Merci a tous j'ai trouvé la soluce :

window.event.keyCode == 13
+5
Utile
Par contre ensuite elle se fait comment la syntaxe ?
Car la je travaille et j'ai juste accès au site ccm...

Je te rappelle mon champs :

<input name="ndi" maxlength="10" style="width: 100px;"
onkeypress="NDI();" type="text">
+4
Utile
1
Bonjour,

je rencontre actuellement le même genre de problème car j'essaie tant bien que mal à entrée les numéro du pavé numéro dans une calculatrice que j'ai créé en html ,css et javascript malheureusement je coince encore la dessus !

je voudrais pouvoir entrée au clavier des chiffres comme sur la calculatrice "microsoft " de notre menu démarrer "accessoires" du pc mais ca ne fonctionne pas , c'est-à-dire que je veux faire une liaison entre les touches tapées au clavier et ma calculatrice que j'ai créé mais rien ne fonctionne.

Voici mon code JS:

function keycode()
{
switch(e.keyCode)
{
case 48: afficher(0); break;
case 49: afficher(1); break;
case 50: afficher(2); break;
case 51: afficher(3); break;
case 52: afficher(4); break;
case 53: afficher(5); break;
case 54: afficher(6); break;
case 55: afficher(7); break;
case 56: afficher(8); break;
case 57: afficher(9); break;
case 42: afficher('*'); break;
case 43: afficher('+'); break;
case 45: afficher('-'); break;
case 46: afficher('.'); break;
case 47: afficher('/'); break;
}
}

please help me :)
Bonjour,

Il faut remplacer keycode() par keycode(e) et appeler la fonction avec onKeyPress="keycode(event)"

Pour les touches du pavé numérique, il faut utiliser les valeurs comprises entre 96 et 111...
Voir http://www.aspdotnetfaq.com/... pour plus de détails...
Willy's gang - 31 janv. 2012 à 13:05
+4
Utile
1
Voici la liste des évènements possible d'un clavier en javascript.
onkeypress : lorsqu'une touche est activée
onkeydown : lorsqu'une touche est enfoncée
onkeyup : lorsqu'une touche est 'relevée'

voir : http://www.commentcamarche.net/faq/18760-javascript-manipulation-des-controles-clavier
et pour un Ctrl + A par exemple ?
+2
Utile
Oui mais je veux spécifier la touche enter
+1
Utile
Salut je me retrouve avec le même problème pourrais tu préciser la syntaxe que tu as utilisé ?
-8
Utile
si je me rappel bien a la place de onkeypress tu mis onkeyclic
ok alors lol
encore lol donc
Utilisateur anonyme - 27 mai 2014 à 16:54
XDDDD
Ouai lol