Ich habe mehrere verschiedene Schaltflächen zum Senden auf meiner JSP in einem Formular-Tag, die alle auf das gleiche Servlet zeigen. Ich muss wissen, welche Schaltfläche zum Senden geklickt wurde. Wie kann ich herausfinden, auf welche Schaltfläche geklickt wurde?Wie kann ich feststellen, welche Schaltfläche zum Senden geklickt wurde
Antwort
Wenn request.getParameter ("button-name") nicht null ist, dann ist dies die Taste, die gedrückt wurde
Jede Schaltfläche Absenden sollte eine unterschiedliche 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">
Dann wird der Name des Eingangs in den Parametern gesendet erscheinen sollte, wo immer das Formular entsendet, so etwas wie
post.jsp?key=value&submit3=&....
Nein, es wird nicht in der Abfragezeichenfolge angezeigt. – crauscher
Dies ist ähnlich wie die DispatchAction in Struts. Was sie tun, ist ein verstecktes Feld zu haben, und wenn Sie das Formular abschicken, setzen Sie onClick() den Wert, um anzugeben, welche Aktion ausgeführt wird.
<input type="hidden" name="dispatchAction"/>
<input type="submit" value="Edit" onClick="setDispatchAction('edit')">
<input type="submit" value="Delete" onClick="setDispatchAction('delete')">
<button type="submit" name="somename" value="button1">some text</button>
<button type="submit" name="somename" value="button2">some other text</button>
finden Sie die Post-Variable "somename" haben auf dem entsprechenden Wert, unabhängig davon, der dispalyed Wert.
Warnung: MSIE sendet den Textkörper der Schaltfläche als "Text" oder "irgendeinen anderen Text" als Parameterwert, nicht als Attribut "Wert"! Sie sollten nicht allen Tasten den gleichen Namen geben, sondern einen anderen Namen und nur das Vorhandensein des Tastennamens abfangen. I.e. Wenn es nicht null ist, wird es gedrückt, andernfalls wird es nicht gedrückt, wenn es null ist. – BalusC
sind sie
interessiert dich das in der Steuerung in Javascript? – mkoryak
gut IE6 sendet einen Wert für alle Tags, ob angeklickt oder nicht –