我有這樣的代碼在我看來:Ruby on Rails的jQuery的提交形式的js
<%= form_for :folder_name, :remote => true, :method => "get", :url => {:action
=> "show_workflow_list"} do |f| %>
<%= f.select :foldernames, options_for_select(@folders, @folders.first), {}, {:onchange => ("this.form.submit()")}%><br /><br />
<%= hidden_field_tag 'selected_domain', params[:domain_selected] %>
當我更改下拉值時,窗體被提交爲:
Processing by DeploymentGroupController#show_workflow_list as HTML
Parameters: {"utf8"=>"Γ£ô", "folder_name"=>{"foldernames"=>"DETAIL_ADJUSTMENT"
當我添加的,而不是像: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] %>
<pre><%= f.submit "Submit"%></pre>
的請求被提交這樣的:
Processing by DeploymentGroupController#show_workflow_list as JS
Parameters: {"utf8"=>"Γ£ô", "folder_name"=>{"foldernames"=>"DETAIL_ADJUSTMENT"
我有下面的代碼在我show_workflow_list
行動:
def show_workflow_list
//some code
respond_to do |format|
format.js
end
end
,我有一個show_workflow_list.js.erb
文件,該文件具有以下內容:
$('#workflow_selection').html("<%=j render "show_workflow_list" %>");
問題是,當我改變它到onchange=> submit
,它正在處理作爲HTML的動作:
Processing by DeploymentGroupController#show_workflow_list as HTML
而不是JS時,有一個提交按鈕:
Processing by DeploymentGroupController#show_workflow_list as JS
所以我又回到406個狀態錯誤和show_workflow_list
沒有被渲染。
更新:
我明白了爲什麼onchange=>
正在爲HTML格式發送。原因是select的格式是「select(object, method, choices, options = {}, html_options = {})
」。我提到的地方":onchange=>this.for.submit" is under html_options={}"
這就是爲什麼它被提交爲HTML。 我需要呈現在同一頁面上<div>
之間的部分_show_workflow_list.html.erb
,所以我在我的控制器改變了這樣的代碼:
def show_workflow_list
//code here
respond_to do |format|
format.html{?}
end
end
在上面的代碼,我需要在{}
的format.html
填寫的東西,使它會在我的make_deployment_group.html.erb
中呈現div
標記之間的部分_show_workflow_list
。
我現在明白了爲什麼代碼不是加工。它是這樣的 - >「
中寫下什麼編號嗯,好的。您必須在form_for方法中添加':html => {:id =>「show_workflow_list_form」},並在js文件中通過$('#folder_name_foldernames')將$('#namenames')更改。 – Dougui 2012-07-26 17:52:03
我爲此添加了一個新問題。請參閱[這裏](http://stackoverflow.com/questions/11675114/ruby-on-rails-submit-a-form-as-a-js-based-on-a-change-in-select-box )當我將它添加到application.js中或甚至在deployment_group.js.coffee中時,我無法看到代碼的任何更改 – user1455116 2012-07-26 18:03:43