【问题标题】:prevent double click with disable_form, ruby on rails防止双击 disable_form, ruby​​ on rails
【发布时间】:2012-07-30 02:50:33
【问题描述】:

当用户点击两次或点击两次提交时,我试图防止表单被“重复发布”。

我看过一些关于此的帖子,但他们本身并没有解决这个问题。我似乎无法让以下内容停止双发,而且我感觉它与远程 => 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 %>

任何建议都会很棒。谢谢!

【问题讨论】:

  • 它适用于“点击”,但不适用于当有人按 Enter 时...当您隐藏提交按钮时人们会这样做。这就是为什么这个问题与链接上的问题不同

标签: ajax ruby-on-rails-3 forms double-click


【解决方案1】:

使用 disable_with 选项

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

【讨论】:

  • 应该注意的是,这目前在 Safari(在我的情况下为 8.0.3)上已被破坏。请参阅:github.com/rails/jquery-ujs/issues/306 如果有人有理智的解决方法,我很想听听!
  • 请更新 Rails 较新版本的答案,请参阅下面的答案。
【解决方案2】:

另一个答案对我不起作用——我相信它来自 Rails 2 时代。根据the docsdisable_with 属性应该添加到data 属性中,如下所示:

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

【讨论】:

  • 是的,旧答案,这个工作完美,谢谢。
猜你喜欢
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多