У меня есть форма на странице, которая представляет собой одно поле ввода. Я хотел бы, чтобы пользователь мог нажать Enter, чтобы отправить форму. К сожалению, форма отправляется несколько раз, когда enter
используется для отправки. Я знаю, что форма отправляется несколько раз, потому что на сервер отправлено несколько запросов POST. Это происходит как в процессе разработки, так и в производстве, и это происходит только спорадически.Rails удаленная форма отправки несколько раз с 'enter'
= form_for thing, remote: true do |f|
= f.text_field :name, placeholder: "hit enter to submit"
Если добавить f.submit
в форму, она будет представлять только один раз.
Это Rails 5 с turbolinks
и jquery_ujs
, включенным в application.js
, если это имеет значение.
UPDATE
Я не был в состоянии воспроизвести после внесения некоторых изменений.
Я подозреваю, что проблема связана с jquery_ujs
, загружаемым несколько раз на страницу. Это было связано с turbolinks
. Точнее, из-за того, что я включил весь свой javascript в тег body
. turbolinks
предлагает добавить файлы javascript в тег head
. Поскольку это так, я не смог воспроизвести ошибку.
Почему бы не использовать скрытую кнопку отправки? – trueinViso
@trueinViso После удаления turbolinks я не смог воспроизвести его. Я обнаружил, что jquery_ujs иногда добавлялся дважды на странице из-за turbolinks, что вызывало множественные действия отправки. –