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?


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.


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 .


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.


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.


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.