HTML Submit-Button: Unterschiedlicher Wert / Button-Text?

139

Ich möchte eine Schaltfläche zum Senden eines HTML-Formulars mit dem Wert erstellen. 'add tag'Die Webseite ist jedoch auf Schwedisch, daher möchte ich einen anderen Schaltflächentext haben .

Das heißt, ich möchte einen Knopf wie haben

Geben Sie hier die Bildbeschreibung ein

aber ich möchte meinen Code mögen

if (request.getParameter(cmd).equals("add tag"))
    tags.addTag( /*...*/ );

Ist das möglich? Wenn das so ist, wie?

aioobe
quelle
4
Ich denke, der Wert sollte keine Rolle spielen. Sie sollten einfach überprüfen, ob in Ihren POST-Daten "add_tag" vorhanden ist
greg0ire
6
Ich habe dies als "Ich möchte, dass der Text der Eingabe für meine serverseitige Verarbeitung nicht relevant ist" gelesen, damit bei mehreren Übersetzungen für ein Formular nicht einer von mehreren Textwerten veröffentlicht wird. Es ist wichtig, wenn Ihr Formular mehrere Senden-Schaltflächen enthält und Sie dies tun möchten, wenn (request.getParameter ("submit-type"). Equals ("add-tag") ... um zu sehen, welche gedrückt wurde.
ijw

Antworten:

228

Es ist möglich, das buttonElement zu verwenden.

<button name="name" value="value" type="submit">Sök</button>

Von der W3C-Seite auf button:

Mit dem BUTTON-Element erstellte Schaltflächen funktionieren genauso wie mit dem INPUT-Element erstellte Schaltflächen, bieten jedoch umfassendere Rendermöglichkeiten: Das BUTTON-Element enthält möglicherweise Inhalt.

Pekka
quelle
7
Nur eine Anmerkung, dies funktioniert nicht wie in IE6 / 7 angekündigt. Dieser Artikel kann das Problem beheben, aber Sie werden Probleme haben, wenn Sie asp.net oder ein anderes Framework verwenden, das HTML beim Postback nicht zulässt: allinthehead.com/retro/330/…
ristonj
Sie können auch einfach die name-Eigenschaft verwenden, die die Ausgabe in POST
TheSatinKnight
23

Dem Vorschlag von @ greg0ire in den Kommentaren folgen:

<input type="submit" name="add_tag" value="Lägg till tag" />

Auf Ihrer Serverseite tun Sie Folgendes:

if (request.getParameter("add_tag") != null)
    tags.addTag( /*...*/ );

(Da ich diese Sprache nicht kenne (Java?), Kann es zu Syntaxfehlern kommen.)

Ich würde die <button>Lösung bevorzugen , aber sie funktioniert nicht wie erwartet unter IE <9 .

Sony Santos
quelle
13

Hier gibt es viele Antworten, die erklären, was Sie tun können (ich verwende den anderen Feldnamen eins), aber die einfache (und noch nicht angegebene) Antwort auf Ihre Frage lautet "Nein" - Sie können keinen anderen Text und Wert verwenden nur HTML.

ijw
quelle
2

Ich weiß nicht, ob ich Sie richtig verstanden habe, aber nach meinem Verständnis können Sie ein zusätzliches verstecktes Feld mit dem Wert "Tag hinzufügen" verwenden und der Schaltfläche den gewünschten Text geben.

Flinsch
quelle
3
Nicht hilfreich bei mehreren Schaltflächen auf demselben Formular, was meiner Meinung nach das Problem des OP ist.
ijw
Aus seiner Frage kann kein Beweis hervorgehen, dass sich mehrere Schaltflächen auf demselben Formular befinden.
Darren
0

Wenn Sie das "Hinzufügen von Tags" über JScript behandeln:

<form ...>
<button onclick="...">any text you want</button>
</form>

Oder oben, wenn Handle über Seiten-Reload

Andrey Pokhilko
quelle
2
Ja, JS ist für jedes einzelne Formular erforderlich, unabhängig von der Einfachheit. Willkommen bei ASP.NET.
ijw
Als ASP.Net-Entwickler kann ich dies bestätigen. : P Angenommen, Sie leben sowieso noch in den Tagen der Webformulare. ASP.Net MVC ist viel besser. Keine Ansichtszustände, global verpackende Formulare usw.
James Billingham