2012-03-05 6 views
23

私は3はRuby on Railsを使用していますが、フォームはAJAXが提出されたときやAJAX HTTPリクエストが(私はデフォルトのjQueryを使用していますを完了するまで、私はform.submitのCSSクラス toogle に無効をしたいと思いますJavaScriptのフレームワーク)。フォーム送信ボタン「a Ruby on Rails Way」を無効にするにはどうすればよいですか?

私のフォームは以下の通りです:

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

どのように私は「共通」/「良い」/「適切」な方法であること作ることができますか?

答えて

42

RailsのjQueryブリッジ(jquery_ujs.js)コードには、実際にはこのためのヘルパーがあります。

ボタンのテキストは、指定した値に置き換えられます。 disable_withオプションの廃止通知があるRails 4 betaのようルナンは、以下のコメントで示唆するよう:

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

APIの変更を参照してください。これをデータ属性に変更する必要があります。

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

これはオプションのようにすべての最新バージョンのRailsで動作するはずです。したがって、Rails 4にアップグレードしたときに修正することが推奨される予定です。:)

+0

'form.submit'のためのjQueryブリッジはありませんが、' submit_tag'のためだけですか? – user502052

+0

'FormBuilder'の' submit'メソッドは、渡されたオプションを持つ 'submit_tag'を呼び出します。 –

+5

'disable_with'オプションは、レール3.2.5では廃止されました。 ':data => {:disable_with => 'Submitting ...'}'を使用してください。出典:http://apidock.com/rails/ActionView/Helpers/FormTagHelper/submit_tag#1305--disable-with-is-deprecated – Renan

関連する問題