我有这样的代码在我看来: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