Pulsante di invio HTML: valore / pulsante-testo diverso?


139

Vorrei creare un pulsante di invio modulo HTML con il valore 'add tag' , tuttavia, la pagina Web è in svedese, quindi mi piacerebbe avere un testo pulsante diverso .

Cioè, voglio avere un pulsante come

inserisci qui la descrizione dell'immagine

ma voglio avere il mio codice simile

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

È possibile? Se é cosi, come?


4
Penso che il valore non dovrebbe importare. Dovresti semplicemente verificare la presenza di "add_tag" nei tuoi dati POST
greg0ire,

6
Ho letto questo come "Voglio che il testo dell'input non sia pertinente per l'elaborazione lato server" in modo che quando si hanno più traduzioni per un modulo non si ottenga uno dei numerosi valori di testo pubblicati. È importante quando il modulo ha diversi pulsanti di invio e si desidera eseguire if (request.getParameter ("submit-type"). Equals ("add-tag") ... per vedere quale è stato premuto.
ijw

Risposte:


228

È possibile usare l' buttonelemento.

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

Dalla pagina W3C su button:

I pulsanti creati con l'elemento BUTTON funzionano esattamente come i pulsanti creati con l'elemento INPUT, ma offrono possibilità di rendering più complete: l'elemento BUTTON può avere contenuto.


7
Solo una nota, questo non funziona come pubblicizzato su IE6 / 7. Questo articolo può correggere il problema, ma avrai problemi se stai usando asp.net o un altro framework che non consente l'
ristonj

potresti anche usare la proprietà name che fornisce l'output in POST
TheSatinKnight

23

Seguendo il suggerimento @ greg0ire nei commenti:

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

Sul lato server, farai qualcosa del tipo:

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

(Dato che non conosco quella lingua (java?), Potrebbero esserci errori di sintassi.)

Preferirei la <button>soluzione, ma non funziona come previsto su IE <9 .


13

Ci sono molte risposte qui che spiegano cosa potresti fare (io uso il nome del campo diverso uno) ma la risposta semplice (e non dichiarata) alla tua domanda è 'no' - non puoi avere un testo e un valore diversi usando solo HTML.


2

Non so se ho capito bene, ma, a quanto ho capito, potresti usare un campo nascosto aggiuntivo con il valore "aggiungi tag" e lasciare che il pulsante abbia il testo desiderato.


3
Non utile con più pulsanti nello stesso modulo, che penso sia il problema dell'OP.
ijw

Non riesce a vedere alcuna prova dalla sua domanda che ci sono più pulsanti nella stessa forma.
Darren,

0

Se gestisci "l'aggiunta di tag" tramite JScript:

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

O superiore se gestisci tramite ricarica pagina


2
Sì, JS richiesto per ogni singola forma, indipendentemente dalla semplicità. Benvenuti in ASP.NET.
IJW

Come sviluppatore ASP.Net, posso confermare questo. : P Supponendo che stai ancora vivendo nei giorni dei moduli web. ASP.Net MVC è molto meglio. Nessun punto di vista, moduli di avvolgimento a livello globale, ecc.
James Billingham,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.