2009-12-15 4 views
10

Suite de problème:Safari: Désactiver formulaire-soumettre sur Entrée?

Sur mon site, j'ai deux formes. Un pour la connexion et un pour les données principales. Je n'ai qu'un bouton de soumission dans la mainform. Le formulaire de connexion est envoyé via js sur mainform submit.

Cela fonctionne très bien. Mais dans Safari, je peux appuyer sur Entrée pendant que je me concentre sur le formulaire de connexion. Cela va envoyer le formulaire de connexion sans la forme principale, donc je reçois une erreur (Il me redirige vers une vue plaine d'un json que je demande sur soumettre).

Est-il possible de désactiver l'action "on enter pressé"?

+0

En cherchant ce problème je suis tombé sur un peu plus de contexte pour cette bizarrerie (notez le statut RÉSOLU WONTFIX): https://bugs.webkit.org/show_bug.cgi?id=16886 –

Répondre

22

Si vous dites que vous utilisez de toute façon le JS pour soumettre les données dans le formulaire, pourquoi ne pas annuler le comportement par défaut du navigateur avec <form onsubmit="return false;">. De cette façon, peu importe si vous appuyez sur le bouton Soumettre ou appuyez sur Entrée dans une entrée, il ne sera pas envoyé. Le onsubmit = "return false" ne devrait pas interférer avec l'appel de la méthode submit() sur le formulaire depuis JS.

+1

merci! Maintenant, ça marche! – Newbie

+1

Très belle et propre réponse. – Mattis

2

Vous pouvez ajouter le gestionnaire d'onsubmit pour votre formulaire de connexion. Ce gestionnaire peut vous aider à éviter de soumettre votre formulaire (et par exemple déplacer votre curseur vers le champ vide suivant dans les formulaires);

<form onsubmit="do_some_function(); return false;" ></form> 

Pour empêcher le formulaire d'être importé, renvoyez false dans votre gestionnaire de sous-diffusion;

Questions connexes