Как сделать отправку формы по нажатию enter

Обновлено: 04.07.2024

Как и в заголовке, если я нажму ввод, моя форма не будет отправлена ​​​​по умолчанию. Я бы предпочел не добавлять код js, но я не могу объяснить, но я не могу объяснить, что с ним не так. Какие-либо предложения? Я также пытался изменить свою кнопку на входе безрезультатно. Если я нажму на кнопку входа, форма заработает.

Кажется, у меня все работает нормально, когда я нажимаю ввод в текстовом поле. Ваш вопрос об отправке формы, когда она не фокусируется на элементе ввода?

сначала проверьте переданное действие, исправьте его, и если ошибка все еще есть, поднимите запрос здесь

Можете ли вы сказать нам, каков ваш ожидаемый результат?

Подскажите пожалуйста, вопрос может и простейший но я не понимаю.
Дело вот в чём: есть поле для ввода и есть кнопка "перейти": [________] [перейти] но по нажатию клавиши Enter с клавиатуры желаемого результата нет, приходится давить на кнопку рядом с полем для ввода. Как сделать чтобы по клавише Enter сразу выполнялось событие??

Если проще, то хочу чтобы так: поле для ввода ввод и нажатие с клавиатуры клавиши Enter - вызывает выполнение поставленой функции (аналог нажатия кнопки рядом с полем для ввода).

Прилагаю скриншот ( ВОПРОС.JPG (51.3 Кб) ) со схематичным объяснением уже не знаю как сказать ещё

Вот к примеру часть кода поля что тут надо изменить ?
Может тип какой то приписать или как ещё "увязать" поле и кнопку события чтобы по клавише Enter событие выполнялось .

Обнаружил новый полезный нюанс при работе с формами на сайтах: когда пользователь работает с заполнением полей на такой форме, часто совершается ошибочная отправка простым нажатием Enter на клавиатуре. Дело в том, что при работе с обычными оконными приложениями, по умолчанию, кнопка ввода приводит к табуляции, т.е. переходу на следующее поле формы. В форме на странице сайта, это же действие вызывает событие отправки введенных данных на сервер. Поэтому, привыкшие к работе с оконными приложениями пользователи, могут ошибочно многократно отправлять некорректно или не полностью заполненные данные.

Частично эту проблему решают дополнительные обработчики проверки корректности заполненных данных, которые либо остановят отправку, либо сообщат об ошибке и позволять продолжить ввод. Но иногда, проще просто отключить этот механизм.

Для этого достаточно добавить свой обработчик на событие ввода данных. Делается это установкой кода, который при событии нажатия клавиши клавиатуры OnKeydown проверяет, является ли эта клавиша Enter. Если нажата клавиша ввода, то процедура действия останавливается. В противном случае продолжается обработка события по умолчанию – просто ввод данных.

Простейшим способом будет добавление атрибута события непосредственно в тег поля формы:

Здесь, на событие onkeydown (нажатие клавиши клавиатуры) выполняется простой скрипт проверки, не является ли код вводимого символа равным 13 (клавиша Enter ). Если код именно этот, то строка return false; останавливает выполнение обработку этого события.

Данное решение не очень удобно, если полей на форме много. Соответственно, нужно либо проставить этот обработчик для каждого поля, либо прописать общий скрипт для всех. Это проще сделать средствами библиотеки JQuery .

Здесь выполняется тот же самый механизм, за исключением того, что следует указать, какие поля формы будут реагировать на событие keydown указанным способом. Например, можно указать специальный класс для тегов полей, которым можно выборочно назначить нужные поля:

Или сделать для всех текстовых полей:

Следует еще обратить внимание, что не стоит этот скрипт связывать с многострочным полем textarea , т.к. в нем Enter , добавляет символ перехода на новую строку, а не отправку данных формы. Если это сделать, то по нажатию ввода переход на новую строку срабатывать не будет.

Как предотвратить нажатие клавиши ENTER на отправку формы в веб-приложении?

ОТВЕТЫ

Ответ 1

[ ревизия 2012, нет встроенного обработчика, сохранить textarea введите обработку]

Теперь вы можете определить обработчик нажатия клавиши в форме:

Ответ 2

Вот обработчик jQuery, который может использоваться, чтобы остановить ввод, и также остановить обратный ключ → назад. Пара (keyCode: selectorString) в объекте "keyStop" используется для сопоставления узлов, которые не должны запускать действие по умолчанию.

Вот код, до вас, чтобы думать о доступности и почему вы на самом деле хотите это сделать!

Ответ 3

Просто верните false из обработчика onsubmit

Что это. Ключи будут обрабатываться, как обычно, браузером/полями и т.д. Если запускается логика ввода-отправки, браузер обнаружит эту скрытую кнопку отправки и запускает ее. И обработчик javascript затем предотвратит его.

Ответ 12

В моем случае этот jQuery JavaScript решил проблему

Ответ 13

Предотвращение "ENTER" для отправки формы может привести к неудобствам некоторых ваших пользователей. Поэтому было бы лучше, если вы выполните следующую процедуру:

Напишите событие onSubmit в теге формы:

напишите функцию Javascript следующим образом:

Как бы то ни было, если вы хотите предотвратить отправку формы при нажатии клавиши Enter, вы можете записать следующую функцию в javascript:

Ответ 14

Ответ 15

Чтобы предотвратить отправку формы при нажатии enter в поле textarea или input , проверьте событие отправки, чтобы узнать, какой тип элемента отправил событие.

Пример 1

JQuery

Лучшее решение - если у вас нет кнопки отправки, и вы запускаете событие с помощью обычной кнопки. Это лучше, потому что в первом примере 2 отправляются события, но во втором примере запускается только 1 событие отправки.

Пример 2

JQuery

Ответ 16

Вы найдете это более простым и полезным: D

Ответ 17

Ответ 18

Ответ 19

Вы можете заблокировать keydown на форме в javascript и предотвратить даже пузыри, я думаю. ENTER на веб-странице в основном просто представляет форму, в которую помещается текущий выбранный элемент управления.

Ответ 20

Эта ссылка предоставляет решение, которое работало для меня в Chrome, FF и IE9, а также эмулятор для IE7 и 8, который поставляется с инструментом разработчика IE9 (F12).

Ответ 21

Другой подход заключается в том, чтобы добавить кнопку ввода отправки в форму только тогда, когда она должна быть отправлена ​​и заменить ее простым div во время заполнения формы

Ответ 22

Просто добавьте этот атрибут в свой тег FORM:

Затем в тэге SCRIPT добавьте следующее:

Затем, когда вы делаете кнопку или по какой-либо другой причине (например, в функции), вы, наконец, разрешаете отправку, просто переворачиваете глобальное логическое значение и выполняете вызов .submit(), аналогичный этому примеру:

Ответ 23

Я столкнулся с этим сам, потому что у меня есть несколько кнопок отправки с разными значениями "имя", поэтому при отправке они делают разные вещи в одном файле php. Кнопка enter / return прерывает это, поскольку эти значения не отправляются. Поэтому я подумал: кнопка enter / return активирует первую кнопку отправки в форме? Таким образом, у вас может быть кнопка отправки 'vanilla', которая либо скрыта, либо имеет значение "имя", которое возвращает исполняемый файл php обратно на страницу с формой в нем. Или же значение по умолчанию (скрытое) "имя", которое активируется нажатием клавиши, и кнопки отправки переписываются со своими значениями "имя". Просто мысль.

Ответ 24

И просто назовите свою кнопку справа, и она все равно будет отправлена, но текстовые поля, т.е. явное значениеOriginalTarget, когда вы нажмете return в одном, не будут иметь правильное имя.

Ответ 25

Это сработало для меня.
onkeydown = "return! (event.keyCode == 13)"

Ответ 26

помещается в внешний файл javascript

или где-либо внутри тега тела

Ответ 27

У меня была та же проблема (формы с тонны текстовых полей и неквалифицированных пользователей).

Я решил это следующим образом:

используя это в HTML-коде:

Таким образом, клавиша ENTER работает так, как планировалось, но требуется подтверждение (обычно второй) ENTER .

Я оставляю читателям поиск script отправки пользователя в поле, где он нажал ENTER , если он решил остаться в форме.

Читайте также: