2012-07-25 81 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