【问题标题】:How to disable a form submit button "a là Ruby on Rails Way"?如何禁用表单提交按钮“a là Ruby on Rails Way”?
【发布时间】:2012-03-23 04:14:19
【问题描述】:

我正在使用 Ruby on Rails 3,我想禁用切换form.submit 的 CSS 类,当表单是 AJAX 提交时直到 AJAX HTTP 请求完成(我使用 JavaScript 的默认 jQuery 框架)。

我的表格如下:

<%= form_for(@article, :remote => true) do |form| %>
    ...
    <%= form.submit(nil, {:id => 'button_id', :class => 'button_class'}) %>
<% end %>

我怎样才能以“常见”/“好”/“适当”的方式做到这一点?

【问题讨论】:

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


    【解决方案1】:

    Rails jQuery 桥 (jquery_ujs.js) 代码实际上为此提供了一个帮助程序。

    <%= form.submit "Save", id: "button_id", class: "button", disable_with: "Submitting..."
    

    它将用您提供的值替换按钮文本。

    http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-submit_tag

    API 更改:正如 Renan 在下面的评论中建议的那样,从 Rails 4 beta 开始,disable_with 选项有一个弃用通知。应该改成数据属性:

    <%= form.submit "Save", id: "button_id", class: "button", data: {disable_with: "Submitting..."} %>
    

    这应该适用于所有最新版本的 Rails,因为无论如何它都是该选项所做的。因此,当您升级到 Rails 4 时,要修复的弃用通知将减少。:)

    【讨论】:

    • 那么,form.submit 是否有一个 jQuery 桥,而只有 submit_tag
    • FormBuildersubmit 方法调用 submit_tag 并传递选项。
    • disable_with 选项自 rails 3.2.5 起已弃用。现在使用:data =&gt; {:disable_with =&gt; 'Submitting...'}。来源:apidock.com/rails/ActionView/Helpers/FormTagHelper/…
    • Rails 的最新 3.2.13 版本中没有弃用通知,但它在 4.0.0-beta1 中,所以我更新了我的答案以反映这一点。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    相关资源
    最近更新 更多