J’ai le modal Twitter Bootstrap 3 suivant, avec un formulaire à l’intérieur du modal:
Je veux attraper l’événement submit
via jQuery:
$("form").on("submit", function () { alert("foo"); return false; });
Le formulaire n’est pas envoyé en appuyant sur la touche Entrée (lorsqu’une saisie de texte est sélectionnée), mais il est soumis lorsque l’utilisateur clique sur le bouton Ajouter (c’est-à-dire sur un bouton d’envoi).
Je ne trouve pas pourquoi le formulaire n’a pas été envoyé via Enter. Le modal se ferme simplement, mais l’événement submit
n’est pas émis / déclenché.
JSFDDLE – où le problème peut être reproduit
Testé sur la version chrome 34.0.1847.116 Ubuntu 14.04 aura (260972) et Firefox 31.0. Même problème sur les deux navigateurs.
vous pouvez simplement changer l’ordre de
close-button submit-button
à
submit-button close-button
ou append
type="button"
sur votre bouton de fermeture pour qu’il ne soit pas interprété comme un bouton d’envoi
à votre santé
J’ai ajouté un gestionnaire à l’événement close modal pour soumettre le formulaire avant de fermer le modal, comme suit:
$("#myModal").on("hide.bs.modal", function () { $(this).find('form').submit(); });
J’ai mis à jour jsfiddle en conséquence, http://jsfiddle.net/yAzrs/2/
Vous pouvez également écouter la touche Entrée dans le formulaire lui-même, quelque chose comme ceci:
$('form').on("keypress", function (e) { if (e.which == 13) $(this).submit(); });
avez-vous essayé d’utiliser
$(document).keypress(function(e) { if(e.which == 13) { alert('You pressed enter!'); } });
jQuery ne sait pas que vous avez appuyé sur Entrée simplement en appuyant sur Entrée. Incluez le jQuery ci-dessus mais avec votre propre code à l’intérieur de l’instruction if et espérons que cela fonctionne
En appuyant sur Entrée dans le champ de saisie, le bouton avec data-licencié = “modal” a été déclenché, il suffit de changer data-licencié = “modal” en votre bouton d’envoi et de le supprimer