45 votes

Si un formulaire HTML a deux <input type="submit"> boutons, comment savoir lequel a été cliqué?

Supposons que j'ai le formulaire HTML suivant:

 <form>
...
<input type="submit" name="queue" value="Queue item">
<input type="submit" name="submit" value="Submit item">
</form>
 

Comment savoir sur quel bouton l'utilisateur a cliqué (sans utiliser javascript)?

J'ai regardé les données soumises et il semble que lorsque "Queue Item" est cliqué, "queue" = "Queue Item" est envoyé au serveur. Et lorsque "Submit item" est cliqué, "submit" = "Submit item" ensembles sont envoyés.

Puis-je compter sur ce comportement? Est-il documenté quelque part dans la norme sur les formulaires HTML? Comment faites-vous les gars?

56voto

PimTerry Points 1445

Oui, vous pouvez compter sur cette question; il est entièrement documenté ici. La question des lignes de dire:

Lorsqu'un formulaire est envoyé pour traitement, certains contrôles ont leur nom jumelé avec leur valeur actuelle, et ces paires sont soumis avec le formulaire. Ces contrôles pour lesquels les paires nom/valeur sont soumis sont appelés succès les contrôles.

et

Si un formulaire contient plus d'un bouton d'envoi, uniquement activé le bouton "soumettre" est un succès.

5voto

mauris Points 19666

Oui, vous pouvez compter sur ce comportement.

Lorsque <input type="submit" name="queue" value="Queue item"> est cliqué, le champ "file d'attente" sera défini et "soumettre" ne le sera pas.

Alors que lorsque l'autre est cliqué, le champ "soumettre" sera défini, et "file d'attente" ne le sera pas.

Si vous n'êtes pas assuré par cela, vous pouvez les diviser en 2 formes et y travailler de cette façon.

3voto

Pentium10 Points 68884

Vous pouvez compter sur ce comportement. Vous obtenez la valeur de l'entrée. J'utiliserais javascript pour basculer une valeur de formulaire masquée, mais comme vous n'avez mentionné aucun javascript vous n'avez pas plusieurs choix.

C'est une norme. Puisqu'il s'agit d'une balise input , et a un value , cela signifie que vous obtenez le value soumis.

0voto

MidnightLightning Points 2261

Diviser le formulaire en deux formes, la réplication de toutes les autres intrants nécessaires par l'autre action. Ou, si vous avez vraiment besoin de savoir si l'utilisateur veut "file d'attente de vs présenter" l'élément, changer les deux boutons de soumission à la radio de sélections pour basculer entre les deux options, et vous avez un nouveau, distinct de "soumettre le formulaire" bouton.

Dans cette situation, si vous voulez un simple clic sur option, vous pouvez utiliser Javascript pour détecter lorsque l'un des boutons radio est sélectionné, et l'auto-soumettre le formulaire instantanément. (À l'aide de Javascript pour l'interface utilisateur, plutôt que sur la forme de la manipulation)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X