ruby on rails drop down onchange submit

时间:2012-07-25 18:07:19

标签: jquery ruby-on-rails ajax ruby-on-rails-3

我的视图中的以下代码位于“\ app \ views \ deployment_group”中,名为make_deployment_group.html.erb

<%= form_for :folder_name, :remote => true, :method => "get", :url => {:action => "show_workflow_list"} do |f| %>
            <%= f.select :foldernames, options_for_select(@folders, @folders.first)%><br /><br />

            <%= hidden_field_tag 'selected_domain', params[:domain_selected] %>
            <%= hidden_field_tag 'user_name', params[:username] %>
            <pre><%= f.submit "Submit"%></pre>
            <% end%>and my `js.erb` file for the action 

show_workflow_list.js.erb:位于“\ app \ views \ deployment_group”,如show_workflow_list.js.erb

$('#workflow_selection').html("<%=j render "show_workflow_list" %>");

我的application.html.erb文件:

<!DOCTYPE html>
<html>
<head>
  <title>Authorize</title>
  <%= stylesheet_link_tag    "application" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body>

<%= yield %>

</body>
</html>

现在,我想删除提交按钮,并在下拉列表发生更改时在我的视图中的show_workflow_list标记中呈现<div>部分。的文件夹。

请帮忙,

由于

1 个答案:

答案 0 :(得分:2)

你必须在JQuery中这样做。在js文件中,当文档准备就绪时,你的app / assets / application.js中你必须有这样的东西:

$('#foldernames').change(function() {
  $('#folder_name').submit()
});

或者,如果您使用coffeescript:

$('#foldernames').change = () ->
  $('#folder_name').submit()

它会起作用。这是非破坏性的javascript!当您更改选择时,它将提交表单,在ajax函数中调用控制器中的操作并执行js.erb文件中的内容。