Подтвердить что ты не робот

Если в форме HTML есть две кнопки <input type="submit">, как узнать, что было нажато?

Предположим, что у меня есть следующая форма HTML:

<form>
...
<input type="submit" name="queue" value="Queue item">
<input type="submit" name="submit" value="Submit item">
</form>

Как узнать, на какую кнопку нажал пользователь (без использования javascript)?

Я просмотрел представленные данные, и кажется, что при нажатии "Queue Item" на сервер отправляется "queue" = "Queue Item". И когда нажата кнопка "Submit item", тогда "submit" = "Submit item" отправляет отправленные.

Могу ли я полагаться на это поведение? Документировано ли где-то в стандарте HTML-формы? Как вы это делаете?

4b9b3361

Ответ 1

Да, вы можете положиться на это; он полностью документирован здесь. В конкретных соответствующих строках говорится:

Когда форма отправляется для обработки, некоторые элементы управления имеют свое имя в паре с их текущим значением, и эти пары передаются с формой. Те элементы управления, для которых представлены пары имя/значение, называются успешными элементами управления.

и

Если форма содержит более одной кнопки отправки, успешно активирована только кнопка отправки.

Ответ 2

Да, вы можете положиться на это поведение.

При нажатии <input type="submit" name="queue" value="Queue item"> поле "queue" будет установлено, и "отправить" не будет.

В то время как при нажатии на другое, поле "отправить" будет установлено, а "очередь" не будет.

Если вы не уверены в этом, вы можете разбить их на 2 формы и работать над ним таким образом.

Ответ 3

Вы можете положиться на это поведение. Вы получаете значение ввода. Я бы использовал javascript для переключения значения скрытой формы, но поскольку вы упомянули no javascript, у вас нет нескольких вариантов.

Это стандарт. Поскольку это тег input и имеет value, это означает, что вы отправили value.

Ответ 4

Разделите форму на две формы, реплицируя любые другие входы, необходимые для другого действия. Или, если вам просто нужно знать, хочет ли пользователь "отправить в очередь или отправить" элемент, измените обе кнопки отправки на радиовыборы, чтобы переключаться между двумя параметрами, и иметь новую отдельную кнопку "отправить форму".

В этой ситуации, если вы хотите выбрать один клик, вы можете использовать Javascript для определения того, когда выбран один из переключателей, и автоматически отправить форму сразу. (Использование Javascript для интерфейса пользователя, а не обработка формы)