Botão Enviar HTML: Valor / texto diferente do botão?

139

Gostaria de criar um botão de envio de formulário HTML com o valor 'add tag' ; no entanto, a página da Web está em sueco, portanto, gostaria de ter um texto de botão diferente .

Ou seja, eu quero ter um botão como

insira a descrição da imagem aqui

mas eu quero ter meu código como

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

Isso é possível? Se sim, como?

aioobe
fonte
4
Eu acho que o valor não deve importar. Você deve simplesmente verificar a presença de "add_tag" em seus dados POST
greg0ire
6
Eu li isso como "Desejo que o texto da entrada não seja relevante para o processamento do meu servidor" para que, quando você tiver várias traduções para um formulário, não obtenha um dos vários valores de texto publicados. Não importa quando o formulário tem vários botões de envio e você quer fazer se (request.getParameter (iguais "submeter-type") ( "add-tag") ... para ver qual deles foi pressionado..
IJW

Respostas:

228

É possível usar o buttonelemento

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

Na página do W3C em button:

Os botões criados com o elemento BUTTON funcionam da mesma forma que os botões criados com o elemento INPUT, mas oferecem mais possibilidades de renderização: o elemento BUTTON pode ter conteúdo.

Pekka
fonte
7
Apenas uma observação: isso não funciona como anunciado no IE6 / 7. Este artigo pode corrigir o problema, mas você terá problemas se estiver usando o asp.net ou outra estrutura que desaprove HTML no postback: allinthehead.com/retro/330/…
ristonj
você também pode usar a propriedade name que fornece saída no POST
TheSatinKnight
23

Seguindo a sugestão @ greg0ire nos comentários:

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

No lado do servidor, você fará algo como:

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

(Como não conheço esse idioma (java?), Pode haver erros de sintaxe.)

Eu preferiria a <button>solução, mas ela não funciona conforme o esperado no IE <9 .

Sony Santos
fonte
13

Há muitas respostas aqui explicando o que você poderia fazer (eu uso o nome de campo diferente um), mas a resposta simples (e ainda não declarada) à sua pergunta é 'não' - você não pode ter um texto e valor diferentes usando apenas HTML.

ijw
fonte
2

Não sei se entendi direito, mas, pelo que entendi, você pode usar um campo oculto adicional com o valor "adicionar tag" e deixar o botão com o texto desejado.

Flinsch
fonte
3
Não é útil com vários botões no mesmo formulário, o que eu acho que é o problema do OP.
IJW
Não é possível ver nenhuma evidência de sua pergunta de que existem vários botões no mesmo formulário.
Darren
0

Se você manipular "adicionando tag" via JScript:

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

Ou acima, se manipular via recarregar a página

Andrey Pokhilko
fonte
2
Yay, JS necessário para todos os formulários, independentemente da simplicidade. Bem-vindo ao ASP.NET.
IJW
Como desenvolvedor do ASP.Net, posso confirmar isso. : P Supondo que você ainda esteja vivendo nos dias de webforms de qualquer maneira. O ASP.Net MVC é muito melhor. Não ViewStates, envolvendo globalmente formas, etc.
James Billingham