2012-07-25 130 views
0

我在位于 “\程序\意见\ deployment_group” 我认为下面的代码名为make_deployment_group.html.erbRuby on Rails的下拉的onchange提交

<%= 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:位于“ \程序\意见\ 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> 

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

请帮帮忙,

感谢

回答

2

你必须要做到这一点在JQuery中。在js文件你必须有这样的事情,在你的应用程序/资产/ application.js中,当文档已准备就绪:

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

还是这个,如果你使用的CoffeeScript:

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

它将起作用。它没有任何结构化的JavaScript!它将在您更改选择时提交表单,在ajax函数中在您的控制器中调用您的操作并执行js.erb文件中的内容。

+0

我在show_workflowz-list.js.erb文件中添加了同样的东西。但是它是如何知道它应该呈现“('#workflow_selection')。html(”<%= j render“show_workflow_list”>>“”这部分在我的服务器上的命令提示符,我没有看到任何参数传递给show_workflow_list当我改变下拉的值 – user1455116 2012-07-25 18:20:53

+0

你的代码应该在文件app/views/my_controllers/show_workflow_list.js.erb。 – Dougui 2012-07-25 18:29:38

+0

嗨,js.erb文件在我的意见,否则即使提交按钮应该现在我修改我的js.erb文件,像这样“$('#foldernames')。change(function() {$('#folder_name')。submit() \t $('#workflow_selection') .html(“<%= j render”show_workflow_list“%>”) \t});“以便它可以在$('#folder_name')submit()后呈现show_workflow_list,但我是一个jquery启动器,所以我想想这里有什么明显的错误,我还有一个小的问题 - 我需要在主视图中的f.select标记中添加一些代码,如“:onchange”吗? – user1455116 2012-07-25 18:57:57