如何禁用表单提交按钮“alàRubyon Rails Way”?

时间:2012-03-05 17:13:41

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

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

我的表格如下:

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

如何以“常见”/“好”/“正确”方式制作?

1 个答案:

答案 0 :(得分:43)

Rails jQuery bridge(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时,将会减少一个弃用通知。:)