J'ai une entrée de texte et un bouton (voir ci-dessous). Comment puis-je utiliser JavaScript pour déclencher l'événement de clic du bouton lorsque la Entertouche est enfoncée à l'intérieur de la zone de texte?
Il y a déjà un bouton d'envoi différent sur ma page actuelle, donc je ne peux pas simplement faire du bouton un bouton d'envoi. Et, je ne veux que la Enterclé de cliquer sur ce bouton spécifique si elle est pressée à l' intérieur celui - zone de texte, rien d' autre.
<input type="text" id="txtSearch" />
<input type="button" id="btnSearch" value="Search" onclick="doSomething();" />
javascript
button
onclick
onkeypress
kdenney
la source
la source
Réponses:
Dans jQuery, les éléments suivants fonctionneraient:
Ou en JavaScript simple, les éléments suivants fonctionneraient:
la source
keydown
ce n'est paskeyup
le meilleur événement à utiliser. De plus, si vous utilisez asp.net, vous devrezreturn false
à la fin empêcher asp.net d'intercepter toujours l'événement.keydown
est que le fait de maintenir enfoncée la touche déclenchera l'événement encore et encore. si vous vous attachez à l'keyup
événement, il ne se déclenchera qu'une fois la clé relâchée.event.preventDefault();
avant d' ajouter uneclick();
fonction alors que ma page a un formulaire et j'ai changékeyup
aveckeypress
comme ce fut le gestionnaire ne fonctionne pas pour moi, de toute façon, merci pour pièce propre code!Il suffit ensuite de le coder!
la source
A compris cela:
la source
Faites du bouton un élément d'envoi, il sera donc automatique.
Notez que vous aurez besoin d'un
<form>
élément contenant les champs de saisie pour que cela fonctionne (merci Sergey Ilinsky).Ce n'est pas une bonne pratique de redéfinir le comportement standard, la Enterclé doit toujours appeler le bouton Envoyer sur un formulaire.
la source
<form>
balises sont jetées par l'analyseur HTML autrement libéral. Je dois donc détourner les touches ou casser. (BTW, appuyer sur Entrée dans SharePoint lance le mode Édition pour une raison quelconque. Je suppose que le ruban utilise le même formulaire.)<button type="submit" onclick="return doSomething(this)">Value</button>
fonctionne pour. L'indice se trouve dans lereturn
motComme personne ne l'a
addEventListener
encore utilisé , voici ma version. Compte tenu des éléments:J'utiliserais ce qui suit:
Cela vous permet de changer le type d'événement et l'action séparément tout en gardant le HTML propre.
la source
e.preventDefault()
pour le faire fonctionner avec les formulaires. Voir ma (nouvelle) réponse .if (event.keyCode == 13) { event.preventDefault(); go.click();}
En JavaScript simple,
J'ai remarqué que la réponse est donnée uniquement dans jQuery, j'ai donc pensé à donner quelque chose en JavaScript également.
la source
evt.which ? evt.which : evt.keyCode
est égal àevt.which || evt.keyCode
Un truc de base que vous pouvez utiliser pour cela que je n'ai pas vu entièrement mentionné. Si vous souhaitez effectuer une action ajax, ou un autre travail sur Entrée, mais que vous ne souhaitez pas envoyer de formulaire, vous pouvez le faire:
Paramètre action = "javascript: void (0);" comme ceci est un raccourci pour empêcher essentiellement le comportement par défaut. Dans ce cas, une méthode est appelée si vous appuyez sur Entrée ou cliquez sur le bouton et un appel ajax est effectué pour charger certaines données.
la source
searchCriteria.blur();
àonsubmit
.Essayez-le:
la source
Pour déclencher une recherche à chaque pression sur la touche Entrée, utilisez ceci:
la source
C'est juste quelque chose que j'ai d'un projet quelque peu récent ... Je l'ai trouvé sur le net, et je n'ai aucune idée s'il existe une meilleure façon ou non dans le vieux JavaScript.
la source
Utilisez
keypress
etevent.key === "Enter"
avec JS moderne!Documents Mozilla
Navigateurs pris en charge
la source
Bien que, je suis à peu près sûr que tant qu'il n'y a qu'un seul champ dans le formulaire et un seul bouton de soumission, appuyer sur Entrée devrait soumettre le formulaire, même s'il y a un autre formulaire sur la page.
Vous pouvez ensuite capturer le formulaire onsubmit avec js et effectuer la validation ou les rappels souhaités.
la source
Personne n'a remarqué l'attribut html "accesskey" qui est disponible depuis un moment.
Il s'agit d'un moyen sans javascript pour les raccourcis clavier.
Les raccourcis des attributs accesskey sur MDN
Destiné à être utilisé comme ça. L'attribut html lui-même est suffisant, cependant nous pouvons changer l'espace réservé ou un autre indicateur en fonction du navigateur et du système d'exploitation. Le script est une approche scratch non testée pour donner une idée. Vous voudrez peut-être utiliser un détecteur de bibliothèque de navigateur comme le petit bowser
la source
s
.C'est une solution pour tous les amoureux de YUI :
Dans ce cas particulier, j'ai eu de meilleurs résultats en utilisant YUI pour déclencher des objets DOM qui ont été injectés avec la fonctionnalité de bouton - mais c'est une autre histoire ...
la source
Dans Angular2 :
Si vous ne voulez pas de retour visuel dans le bouton, c'est une bonne conception de ne pas référencer le bouton mais plutôt d'appeler directement le contrôleur.
De plus, l'ID n'est pas nécessaire - une autre façon NG2 de séparer la vue du modèle.
la source
Dans ce cas, vous souhaitez également désactiver le bouton Entrée de la publication sur le serveur et exécuter le script Js.
la source
Cette tentative de changement est proche, mais se comporte mal par rapport au navigateur à l'époque (sur Safari 4.0.5 et Firefox 3.6.3), donc en fin de compte, je ne le recommanderais pas.
la source
Utilisez-le lorsque vous gérez l'événement ou dans la fonction que votre gestionnaire d'événements appelle.
Il fonctionne au moins dans Internet Explorer et Opera.
la source
Pour jquery mobile je devais faire
la source
.live
est déconseillé dans jQuery 1.7. Est-il toujours considéré comme OK dans jQuery Mobile?Pour ajouter une solution JavaScript complètement simple qui résout le problème de @ icedwater avec la soumission de formulaire , voici une solution complète avec
form
.Violon: https://jsfiddle.net/rufwork/gm6h25th/1/
HTML
Javascript
la source
En Javascript moderne, non obsolète (sans
keyCode
ouonkeydown
):la source
Voici mes deux cents. Je travaille sur une application pour Windows 8 et souhaite que le bouton enregistre un événement de clic lorsque j'appuie sur le bouton Entrée. Je fais cela dans JS. J'ai essayé quelques suggestions, mais j'ai eu des problèmes. Cela fonctionne très bien.
la source
charCode
de 13 ailleurs, vous tirez sur leprintResult()
.Pour le faire avec jQuery:
Pour le faire avec du JavaScript normal:
la source
Pour ceux qui aiment la brièveté et l'approche js moderne.
où entrée est une variable contenant votre élément d'entrée.
la source
Pour JS moderne
keyCode
est obsolète, utilisezkey
plutôtla source
Dans jQuery, vous pouvez utiliser
event.which==13
. Si vous en avez unform
, vous pouvez l'utiliser$('#formid').submit()
(avec les écouteurs d'événement corrects ajoutés à la soumission dudit formulaire).la source
J'ai développé javascript personnalisé pour atteindre cette fonctionnalité en ajoutant simplement une classe
Exemple:
<button type="button" class="ctrl-p">Custom Print</button>
Ici Check it out Fiddle
- or -
check out running example https://stackoverflow.com/a/58010042/6631280
la source
Cela pourrait également aider, une petite fonction JavaScript, qui fonctionne très bien:
Je sais que cette question est résolue, mais je viens de trouver quelque chose, qui peut être utile pour les autres.
la source