HTML Submit-button: другое значение / button-text?

139

Я хотел бы создать кнопку отправки HTML-формы со значением 'add tag' , однако веб-страница написана на шведском языке, поэтому я хотел бы иметь другой текст кнопки .

То есть я хочу, чтобы кнопка как

введите описание изображения здесь

но я хочу, чтобы мой код как

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

Это возможно? Если да, то как?

aioobe
источник
4
Я думаю, что значение не должно иметь значения. Вы должны просто проверить наличие «add_tag» в ваших данных POST
greg0ire
6
Я читаю это как «Я хочу, чтобы текст ввода не относился к моей обработке на стороне сервера», поэтому, когда у вас есть несколько переводов для формы, вы не получите одно из нескольких текстовых значений. Это имеет значение, когда ваша форма имеет несколько кнопок отправки, и вы хотите сделать if (request.getParameter ("submit-type"). Equals ("add-tag") ..., чтобы увидеть, какая из них была нажата.
ijw

Ответы:

228

Это возможно с помощью buttonэлемента.

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

Со страницы W3C button:

Кнопки, созданные с помощью элемента BUTTON, функционируют так же, как кнопки, созданные с помощью элемента INPUT, но они предоставляют более широкие возможности рендеринга: элемент BUTTON может иметь содержимое.

Пекка
источник
7
Просто обратите внимание, это не работает, как рекламируется в IE6 / 7. Эта статья может исправить проблему, но у вас будут проблемы, если вы используете asp.net или другой фреймворк, который запрещает HTML при обратной передаче
ristonj
Вы также можете просто использовать свойство name, которое обеспечивает вывод в POST
TheSatinKnight
23

Следуя предложению @ greg0ire в комментариях:

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

На вашей стороне сервера вы будете делать что-то вроде:

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

(Так как я не знаю этот язык (Java?), Могут быть синтаксические ошибки.)

Я бы предпочел <button>решение, но оно не работает должным образом в IE <9 .

Sony Santos
источник
13

Здесь есть множество ответов, объясняющих, что вы могли бы сделать (я использую другое имя поля), но простой (и пока не заявленный) ответ на ваш вопрос - «нет» - вы не можете получить другой текст и значение, используя просто HTML.

IJW
источник
2

Я не знаю, правильно ли я вас понял, но, как я понимаю, вы можете использовать дополнительное скрытое поле со значением «добавить тег» и позволить кнопке иметь нужный текст.

Flinsch
источник
3
Бесполезно с несколькими кнопками в одной форме, что, я думаю, является проблемой ОП.
ijw
Из его вопроса не видно никаких доказательств того, что в одной форме есть несколько кнопок.
Даррен
0

Если вы обрабатываете «добавление тега» через JScript:

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

Или выше, если справиться через перезагрузку страницы

Андрей Похилко
источник
2
Да, JS требуется для каждой формы, независимо от простоты. Добро пожаловать в ASP.NET.
ijw
Как разработчик ASP.Net, я могу это подтвердить. : P Предполагая, что вы все еще живете во времена вебформ в любом случае. ASP.Net MVC намного лучше. Никаких состояний, глобально упакованных форм и т. Д.
Джеймс Биллингем