2012-02-20 10 views
1

Collection Selectの値が変更されたときにリモートフォームを送信しようとしています。 Rails 3 Collection onchangeを選択してください。

"<%= form_tag ({ :controller => :images, :action => :index, :method => "post" }) do %>" 

"<%= collection_select(:admin_image, :category_id, Admin::Category.all, :id, :name, {:onchange => remote_function(:url => {:controller => "/admin/admin_home", :action => "index"}, :with => "'category_id='+value")}) %>" 

"<% end %>" 
をしかし、私はremote_functionだから私も試したレールにもはや3であることを理解していない:私が試した

{:onchange => "submit();" 

しかし、何も起こりません。

答えて

2

これにはJavacriptを使用する必要があります。 jQueryを使用しているなら、それは簡単です。あなたは '変更'イベントを聞き、発生時にフォームを提出したいと思うでしょう。私は、この汎用関数を使用して、私は「submit_on_change」クラスで変化に自動的に提出するフォームタグ付け:ドキュメント準備に例えば、DOMをロードした後にこれを実行していることを確認してください

$("form.submit_on_change").each(function(idx,form){ 
    $(form).find("select,input").each(function(idx,element){ 
    $(element).change(function(){ 
     $(form).submit(); 
     return false; 
    }); 
    }); 
}); 

を。

+0

こんにちは、ありがとうございました。 –

0

ウェブ上で検索したところ、より良い解決策が見つかりました。 ")(提出;")}アクション=> "インデックス" %>は 行います

"/管理/画像"、......それが役に立てば幸い%>
+2

この回答を展開して、コードを再フォーマットしてください。 – Dan