J'ai un formulaire de connexion standard - un champ de texte de courrier électronique, un champ de mot de passe et un bouton d'envoi sur un projet AIR qui utilise HTML / jQuery. Lorsque j'appuie sur Entrée sur le formulaire, le contenu de l'ensemble du formulaire disparaît, mais le formulaire n'est pas envoyé. Est-ce que quelqu'un sait s'il s'agit d'un problème avec Webkit (Adobe AIR utilise Webkit pour HTML) ou si j'ai groupé les choses?
J'ai essayé:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
Mais cela n'a ni arrêté le comportement de compensation, ni soumis le formulaire. Il n'y a aucune action associée au formulaire - pourrait-il s'agir du problème? Puis-je mettre une fonction javascript dans l'action?
Réponses:
Découvrez cette réponse stackoverflow: event.preventDefault () vs return false
Essentiellement, "return false" équivaut à appeler
e.preventDefault
ete.stopPropagation()
.la source
En plus de retourner faux comme Jason Cohen l'a mentionné. Vous devrez peut-être également empêcher
la source
return false
dans un événement géré par jQuery, appelez automatiquement e.preventDefault ()Je ne sais pas si cela vous aidera, mais vous pouvez essayer de simuler un clic sur le bouton Envoyer, au lieu de soumettre directement le formulaire. J'ai le code suivant en production, et cela fonctionne très bien:
Remarque: jQuery ('# submit'). Focus () rend le bouton animé lorsque vous appuyez sur Entrée.
la source
Revenez
false
pour empêcher la frappe de continuer.la source
Y a-t-il une raison pour laquelle vous devez accrocher et tester la touche Entrée?
Ne pourriez-vous pas simplement ajouter un
à votre formulaire et doit-il naturellement être soumis lorsque la saisie est poussée? Vous pouvez même alors accrocher l'
onsubmit
action du formulaire et appeler une fonction de validation à partir de là si vous le souhaitez ...Vous pouvez même utiliser le
onsubmit
comme test pour voir si votre formulaire est envoyé, mais cela ne fonctionnera pas si vous appelezform.submit()
.la source
return false;
.Voici un moyen de le faire en tant que plugin JQuery (au cas où vous voudriez réutiliser la fonctionnalité):
Maintenant, si vous voulez décorer un
<input>
élément avec ce type de fonctionnalité, c'est aussi simple que cela:la source
Vous pouvez également simplement ajouter
onsubmit="return false"
au code du formulaire dans la page pour éviter le comportement par défaut.Ensuite, accrochez (
.bind
ou.live
) l'submit
événement du formulaire à n'importe quelle fonction avec jQuery dans le fichier javascript.Voici un exemple de code pour vous aider:
HTML
Javascript + jQuery
Cela fonctionne à partir du 2011-04-13, avec Firefox 4.0 et jQuery 1.4.3
la source
Voici mon code:
la source
De plus, pour maintenir l'accessibilité, vous devez l'utiliser pour déterminer votre code de clé:
la source
Ajout juste pour une mise en œuvre facile. Vous pouvez simplement créer un formulaire puis masquer le bouton d'envoi:
Par exemple:
la source
J'utilise maintenant
Au début, j'ai ajouté un gestionnaire d'événements au bouton de soumission, ce qui a produit une erreur pour moi.
la source
J'ai découvert aujourd'hui que l'événement keypress n'est pas déclenché lorsque vous appuyez sur la touche Entrée, vous pouvez donc basculer à la place sur keydown () ou keyup ().
Mon script de test:
La sortie dans la console lorsque vous tapez "A Entrez B" sur le clavier:
Vous voyez dans la deuxième séquence la «pression de touche» est manquante, mais le code d'enregistrement de touche et de touche «13» est enfoncé / relâché. Selon la documentation jQuery sur la touche de fonction () :
Testé sur IE11 et FF61 sur Server 2012 R2
la source
Dans les codes HTML:
Dans les codes Js:
la source
Essaye ça:
la source