10
votes

Comment utiliser la touche Entrée comme gestionnaire d'événements (JavaScript)?

im essayant de faire mon propre chat ... Donc, j'ai un champ de texte d'entrée, le bouton Soumettre, n'est même pas soumis, son juste un bouton .... Donc, lorsque la touche Entrée est enfoncée, j'ai besoin du Valeur du champ de saisie à apparaître dans mon Texarea (qui est réadis) ...

Equipement de bien-être .. faire une longue histoire courte, je veux juste un gestionnaire d'événements de base Entrée, je sais que cela fonctionne parfaitement avec les boutons Soumettre des CU Vous n'avez pas besoin de programmer du tout, sa valeur par défaut. Mais mon bouton est Type = "Button" .... Alors, lorsque vous appuyez sur Entrée, rien ne se passe ... Comment puis-je déclencher mon bouton en appuyant sur Entrée?


6 commentaires

Vérifiez ce fil: Stackoverflow.com/Questtions/155188/...


Dans une forme, un élément de bouton est un bouton Soumettre par défaut. Si vous configurez l'entrée dans un formulaire et utilisez une soumission normale, vous devriez pouvoir tout faire fonctionner sans script. Ensuite, vous pouvez ajouter un auditeur Onsubmit lorsque la page se charge pour remplacer la soumission avec XHR. Maintenant, vous avez une page de discussion qui fonctionne avec ou sans JS et vous avez une bonne baisse.


Whats XHR, problème avec le fabrication d'un bouton d'envoi, est-ce que lorsque vous appuyez sur le bouton, la page doit actualiser chaque fois qu'un message de chat est envoyé, je suis tout convenu avec Ajax et tout ce qui est de la base de données MySQL, etc., mais je dois Cliquez sur le bouton Tout ce que j'envoie un message dans la boîte de chatbox, comment boiteux ... J'ai besoin du gestionnaire d'événements entré


@Juan - La réponse est dans le lien que j'ai fourni. Il y a du code utilisant jQuery et il y a du code à la vanille JavaScript. Faites votre choix.


Si vous souhaitez que la page ne soit pas rafraîchie lorsque vous appuyez sur une soumission, vous devez gérer l'ONSumbit du formulaire, faire ce que vous voulez et renvoyer false .


@Juan - Vous voulez un événement Listener . Il n'y a pas d'événement "Entrée", appuyez sur Entrée lorsque la mise au point est sur une commande d'entrée de formulaire soumet le formulaire et, par conséquent, un événement de soumission est expédié. Vous mettez un auditeur de soumission sur le formulaire de sorte que si JavaScript soit disponible, vous pouvez faire un XMLHTTPQUEST (AKA AJAX) et annuler la soumission du formulaire. Vous pouvez donc donner aux utilisateurs à la fois un bouton Soumettre et appuyer sur Entrée Soumettre le formulaire. Certaines personnes aiment cliquer sur les boutons ...


3 Réponses :


15
votes

Vous pouvez faire le bouton Type Soumettre ou utiliser le gestionnaire OnKeyUp et vérifier le code KeyCode 13.

Voici une liste des codes de clé: < Un href = "http://www.camiaresearch.com/c4/702b8cd1-fe5b0-42e6-83ac-25f0306e3e25/javascript-charsaspx" rel = "nfollow NOREFERRER"> JavaScript Photo Char codes ). Vous devrez savoir comment obtenir le code-clés de l'événement.

EDIT: un exemple

html: xxx

JavaScript plain: xxx


2 commentaires

ce code clé 13 est probablement ce que je cherche, mais c'est inconnu pour moi, je ne l'ai pas vu ni utilisé, pourriez-vous fournir un extrait de code pour moi


Merci Entonio qui était assez bonne, réponse facile, courte et non compliquée



3
votes

Voici un extrait de code de travail pour l'écoute de la clé Entrée xxx


0 commentaires

1
votes

Voici une version de la réponse actuellement acceptée (de @entonio) avec clé au lieu de code clé:

html: xxx

simple JavaScript: xxx


4 commentaires

Intéressant, je crois que cela n'existait pas à l'époque. Je pensais que ces jours-ci, personne n'a écrit ce genre de gestionnaire d'événements.


Ne copiez pas / collez la même réponse partout, post au même endroit, puis votez-vous à la fermeture de l'autre, comme je l'ai fait.


Est-ce correct de copier / coller moi-même?


Bons points, Entonio et Lgson. J'essayais juste de répandre le mot à propos de l'événement.key. Ce n'était pas une copie / pâte exacte, mais votre commentaire et votre bowvote me permettait de lire davantage sur le signal de signalisation et des sujets connexes pour réduire mon ignorance de l'étiquette de dépassement de pile, alors merci pour cela.