Отправка формы с помощью кнопки ввода в форме с несколькими кнопками отправки - PullRequest
7 голосов
/ 01 ноября 2010

У меня есть форма с простым текстовым полем и несколькими кнопками отправки. Когда пользователь нажимает ввод, я хочу отправить форму с определенной кнопкой отправки, но похоже, что форма просто выбирает первую кнопку вместо этого. Есть ли способ сообщить браузеру, какую кнопку отправки выбрать, когда пользователь нажимает ввод? Желательно без javascript, но я возьму его, если это единственное решение.

Редактировать: у меня нет другого выбора, кроме как иметь несколько кнопок отправки. Это устаревшее приложение.

Ответы [ 4 ]

12 голосов
/ 01 ноября 2010

Нет пути. Самое простое решение - просто убедиться, что первая кнопка отправки в форме - это та кнопка, которую вы хотите вызвать с помощью кнопки Enter .

Обратите внимание, что эта кнопка отправки может быть дубликатом кнопки в другом месте формы, и она не должна быть видимой .

2 голосов
/ 01 ноября 2010

Вы можете использовать простой JS, чтобы перехватить событие onkeypress:

onkeypress="if ((event.keyCode | event.which) == 13) { document.getElementById('MySubmitButton').click(); return false; }"

Просто добавьте это в тег текстового поля и замените «MySubmitButton» идентификатором нужной кнопки отправки.

Примечание: используйте ID, а не имя.

0 голосов
/ 01 ноября 2010

Вы можете просто определить метод javascript для события «onclick» или «onkeypress» кнопки, из которой вы хотели получить отправленную форму.Но вы должны определить процесс, который будет происходить в функции JavaScript

0 голосов
/ 01 ноября 2010

Если бы у вас был следующий HTML

<form id="form_one">
    <input type="submit" value="Submit 1" />
</form>
<form id="form_two">
    <input type="submit" value="Submit 2" />
</form>

Тогда вы могли бы получить немного jQuery следующим образом

$(document).ready(function() {
    $(this).keydown(function(e) {
        if (e.keyCode == '13') {
            $("#form_one").submit();
        }
    });
});

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

Также, насколько я знаю, если бы элемент управления в "form_one" имел фокус, и вы нажали Enter, он автоматически подтвердил бы, что форма содержится внутри элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...