Rails 3集合选择onchange Submit



当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已经不在rails3中了。所以我也尝试过:

{:onchange => "submit();"

但什么也没发生。

您需要使用Javacscript。如果您使用的是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之后运行此操作,例如在准备好文档的情况下。

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

"/admin/images",:action=>"index"})执行%>"submit();"%>

最新更新