Я хотел бы иметь кнопку отправки, которая представляет другое значение, чем отображается на кнопке. С <input type="submit">
вы не можете этого сделать. Однако с <button type="submit">
это могут быть два разных значения. Вопрос в том, будет ли он работать во всех браузерах?
Попробуйте этот тестовый код здесь:
<form method="get" action="">
<input type="text" name="txt"/>
<button type="submit" name="btn" value="val">text</button>
</form>
В FF 3.6 он обновляет мою адресную строку с обоими значениями соответственно (и отвечает мне, нажимая enter в текстовом поле). В IE 8 он также принимает нажатие enter, отображает текстовое значение в адресной строке, но он не показывает значение кнопки как параметр GET вообще... означает ли это, что он не отправляет его?
Я не могу использовать скрытые входы, потому что мне нужно определить, какая кнопка нажата без JS.
Тест 2:
<form method="get" action="">
<input type="text" name="txt"/>
<button type="submit" name="submit1" value="submit1">submit</button>
<input type="submit" name="submit2" value="submit2"/>
<input type="submit" name="submit3" value="submit3"/>
</form>
В IE8 нажатие кнопки ввода не отправляет ни одну из кнопок, но нажатие кнопки submit1 отправит значение. Он отправит "submit", а не "submit1", который не соответствует FF. Однако отправка формы только отправляет значение одной кнопки в обоих браузерах, что означает, что я мог бы проверить, какая кнопка была нажата, проверяя, существует ли GET['submitX']
! Chrome имеет несколько другое поведение при нажатии enter (подает кнопку2). Opera кажется совместимой с FF... но все 4 браузера только подают одну кнопку. У меня нет более ранних версий браузеров, установленных хотя.... кто-нибудь знает, работает ли она в более ранних версиях, в частности IE6?