web-dev-qa-db-ja.com

フォーム送信ボタン「alàRuby on Rails Way」を無効にする方法は?

Ruby3でRailsを使用していますが、disableおよびCSSクラス_form.submit_のフォームがAJAX送信され、AJAX HTTPリクエストが完了するまで( JavaScript用のデフォルトのjQueryフレームワークを使用しています)。

私のフォームは次のとおりです。

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

どうすれば「共通」/「良い」/「適切な」方法でそれを作ることができますか?

23
user502052

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ベータ版disable_withオプションに非推奨の通知があります。データ属性に変更する必要があります。

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

これは、Railsのすべての最近のバージョンで機能するはずです。これは、オプションがとにかく行ったことです。したがって、Railsにアップグレードするときに、修正する非推奨通知が1つ少なくなります。 = 4. :)

43
Andrew France