2012-07-30 79 views
4

我試圖防止表單被「雙張貼」,當用戶點擊兩次或點擊提交兩次。防止雙擊disable_form,在rails上的ruby

我已經看到一些關於此的帖子,但他們本身沒有遇到這個問題。我似乎無法得到下面的結果停止雙重帖子,我感覺它與remote => true(使用ajax顯示頁面上的內容)有關。

下面是我的形式:

<%= form_for([@posts, @comment], :remote => true) do |f| %> 

     <%= f.text_field :comment %> 

     <%= f.submit "Submit", class: "btn btn-large btn-primary", :style => 'display: none;', :disable_with => '' %> 

    <% end %> 

任何建議將是巨大的。謝謝!

+0

http://stackoverflow.com/questions/11505801/prevent-double-submits-in-a-rails-ajax-形式 – 2012-07-30 04:18:08

+0

它適用於「點擊」,但不適用於有人點擊輸入......這是人們在隱藏提交按鈕時所做的工作。這就是爲什麼這個問題與鏈接上的問題不同 – user749798 2012-07-31 00:11:02

+0

嘗試綁定'keyup'事件。 – 2012-07-31 04:19:36

回答

11

使用disable_with選項

<%= submit_tag :submit, :id => 'submit_button', :value => "Create!", disable_with: "Creating..." %> 
+0

應該被接受爲答案 – cyrilchampier 2014-09-22 09:27:41

+0

應該指出,這是目前在Safari(8.0.3,在我的情況下)打破。見:https://github.com/rails/jquery-ujs/issues/306如果任何人有一個理智的解決方法,我很樂意聽到它! – elsurudo 2015-02-16 18:46:38

6

對方回答沒有爲我工作 - 我相信這是從軌道2時代。據the docs,該disable_with屬性應該在data屬性中進行添加,像這樣:

<%= submit_tag "Complete sale", data: { disable_with: "Please wait..." } %> 
+0

是的,舊的答案,這一個完美的工作,謝謝。 – 2016-08-18 11:18:04