2010-07-08 6 views
3

J'ai un formulaire avec deux boutons de soumission - un pour Annuler et l'autre pour Enregistrer les valeurs de formulaire dans la base de données. Lorsque vous appuyez sur la touche Entrée, le bouton Annuler soumet le formulaire au lieu du bouton Enregistrer qui envoie le formulaire. Comment puis-je faire le bouton Enregistrer soumettre le formulaire lorsque la touche Entrée est enfoncée?Soumission de formulaire incorrecte à l'aide de la touche Entrée lorsqu'il y a deux boutons d'envoi

Merci,

+0

Vous pouvez utiliser le bouton de réinitialisation pour Annuler – Himadri

+0

Lorsque le bouton Annuler est enfoncé, l'utilisateur doit être redirigé vers une autre page. Puis-je le faire en utilisant le bouton de réinitialisation? Merci –

Répondre

4

Votre formulaire ne doit pas comporter deux boutons de présentation. Avoir le bouton Enregistrer être de type soumettre, et le bouton Annuler être de type bouton.

EDIT: Je vais mettre à jour cette réponse pour gérer plusieurs problèmes qui ont été soulevés. Rien de ce que j'ai vu dans la spécification HTML (c'est-à-dire le DTD) n'autorise deux boutons d'envoi sous une forme, mais le problème exact mentionné par l'OP peut se produire. Dans son cas, la solution est de faire le bouton Annuler de type bouton et ajouter dans le code JavaScript suivant:

<input type="button" value="Cancel" onclick="window.location.href='nextpage.html';"/> 

Ici, on remplacerait nextpage.html avec l'URL appropriée. Ou, this.form.action peut être le nouvel emplacement si la redirection est à l'action du formulaire.

Si l'OP veut être sûr et éviter JavaScript, cela ne peut être qu'un lien hypertexte (peut-être dénommé).

+1

Il est parfaitement possible d'avoir plusieurs boutons de soumission dans un formulaire. Le vrai problème est le comportement erratique des navigateurs lorsque c'est le cas. De plus, le bouton Annuler ne soumettra pas le formulaire s'il ne s'agit pas d'un bouton ''. – zneak

+2

Oui, c'est autorisé selon la DTD, mais comme vous l'avez dit, les navigateurs ne sont pas équipés pour gérer correctement ce cas. La solution serait de garder un bouton de soumission et d'utiliser JavaScript sur l'autre (si c'est absolument nécessaire). Peut-être que le PO peut clarifier l'objectif du bouton Annuler. – TNi

+0

la spécification HTML ne définit pas l'ordre d'activation par défaut pour plusieurs bouton d'envoi lorsque le focus du clavier n'est pas dans l'un d'entre eux; il spécifie le comportement d'activation uniquement lorsque le focus est sur l'élément submit lui-même. ne blâmez pas les navigateurs pour ne pas implémenter quelque chose qui n'est pas spécifié. :-) –

Questions connexes