2009-04-09 27 views
8

J'ai plusieurs boutons de soumission différents sur mon JSP dans un tag de formulaire qui pointent tous vers la même servlet. J'ai besoin de savoir sur quel bouton de soumission a été cliqué. Comment puis-je savoir quel bouton a été cliqué?Comment puis-je savoir sur quel bouton de soumission a été cliqué

+1

sont-ils

+0

cela vous intéresse-t-il dans le contrôleur en javascript? – mkoryak

+1

bien IE6 envoie une valeur pour tous les tags

Répondre

12

si request.getParameter ("nom-bouton") n'est pas nul alors c'est le bouton qui a été pressé

4

Chaque bouton Soumettre devrait avoir un autre name:

<input type="submit" value="This is a submit button" name="submit1"> 
<input type="submit" value="Another submit button" name="submit2"> 
<input type="submit" value="Yet another submit button!" name="submit3"> 

Ensuite, le nom de l'entrée doit apparaître dans les paramètres envoyés à chaque fois que le formulaire envoyez des messages, quelque chose comme

post.jsp?key=value&submit3=&.... 

http://www.w3schools.com/tags/tag_input.asp

+1

Non, il n'apparaît pas dans la chaîne de requête. – crauscher

1

Ceci est un peu similaire à DispatchAction dans Struts. Qu'est-ce qu'ils font est d'avoir un champ caché, et lorsque vous soumettez le formulaire, ont onClick() définir la valeur pour spécifier quelle action est prise.

<input type="hidden" name="dispatchAction"/> 
<input type="submit" value="Edit" onClick="setDispatchAction('edit')"> 
<input type="submit" value="Delete" onClick="setDispatchAction('delete')"> 
0
<button type="submit" name="somename" value="button1">some text</button> 
<button type="submit" name="somename" value="button2">some other text</button> 

vous aurez la mise à la valeur selon poste variable "somename", peu importe la valeur dispalyed.

+1

Attention: MSIE envoie le corps du bouton "un peu de texte" ou "un autre texte" comme valeur de paramètre, pas l'attribut 'value'! Vous ne devez pas donner à tous les boutons le même nom, mais un nom différent et intercepter sur la présence du nom du bouton uniquement. C'est à dire. si elle n'est pas nulle, alors elle est pressée, sinon si elle est nulle, alors elle n'est pas pressée. – BalusC

Questions connexes