Если 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-формах? Как делают Вас, парни делают это?

43
задан Jason Sundram 24 May 2013 в 22:48
поделиться

4 ответа

Одна из самых больших проблем Serializable заключается в том, что их трудно сделать неизменными. Сериализация заставляет идти на компрометировать здесь.

У меня был бы соблазн создать конструкторы копирования вниз по графу объектов. Это просто немного больше хреновой работы, чтобы сделать.

-121--3909818-

Обычно рекурсия используется для сценариев с вложенными циклами, в которых число вложенных циклов неизвестно во время компиляции. Что-то с идеей:

void func(const vector<int> &times, int depth) {
    if (depth == times.size()) return;
    for (int i = 0; i < times[depth]; ++i) {
        cout << depth;
        func(times, depth + 1);
    }
}
-121--3497903-

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

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

и

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

54
ответ дан 26 November 2019 в 23:01
поделиться

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

Это стандарт. Так как это тег входа , и он имеет значение , это означает, что Вы получаете значение .

3
ответ дан 26 November 2019 в 23:01
поделиться

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

Когда <тип ввода = «Отправить» name = «queue» значение = «Пункт очереди»> нажат, поле «очередь» будет установлено и «Отправить» не будет.

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

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

5
ответ дан 26 November 2019 в 23:01
поделиться

разделить форму на две формы, реплицируя любые другие входы, необходимые другими действиями. Или, если вам действительно просто нужно знать, хочет ли пользователь «ВКЛЮЧЕНИЕ vsce отправить» элемент, измените оба кнопки «Отправить» на выбора радио, чтобы переключаться между двумя параметрами, и иметь новый, отдельный «отправьте форму».

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

0
ответ дан 26 November 2019 в 23:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: