Rails 3 Collection选择onchange Submit

时间:2012-02-20 23:33:38

标签: ruby-on-rails-3 select submit onchange

我正在尝试在Collection Select的值更改时提交远程表单。我试过了:

"<%= 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已经不在rails 3.所以我也试过了:

{:onchange => "submit();"

但没有任何反应。

2 个答案:

答案 0 :(得分:2)

你需要使用Javacsript。如果您使用的是jQuery,那很简单。您需要收听“更改”事件并在其触发时提交表单。我使用这个泛型函数,然后使用“submit_on_change”类标记我想要在更改时自动提交的表单:

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

确保在dom加载后运行此文件,例如在文档就绪时。

答案 1 :(得分:0)

在网上搜索后,我找到了更好的解决方案。希望它有所帮助......

 “/ admin / images”,:action =&gt; “index”})do%&gt;    “提交();” %GT;