我在頁面上有一個表單,它是一個輸入字段。我希望用戶能夠按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
建議在head
標記中添加您的JavaScript文件。由於這樣做,我無法重現錯誤。
爲什麼不使用隱藏的提交按鈕? – trueinViso
@trueinViso刪除turbolinks後,我無法複製它。我發現jquery_ujs有時會在頁面上添加兩次,這是由於turbolinks,因此導致多次提交操作。 –