元素更新时出现RJS错误“对象不支持此属性”
我在控制器中有以下代码。 我根据另一个下拉框中的选择动态填充下拉框。
def update_releases project = Project.find(params[:project_id]) releases = project.releases puts "releases==#{releases}" render :update do |page| page.replace_html 'releases', :partial => 'releases', :object => releases end
查看代码:
-form_tag reports_path(report_type=1),:method => :get, :multipart => true ,:id => "filter" do %table.grid.full %tr %td.grid.full_panels{:style => "width: 20%"} Project: %td.grid.full_panels{:style => "width: 20%"} //= select_tag "projects",options_from_collection_for_select(projects,"id","name",params[:projects]),{:onchange => "#{remote_function(:url => {:action => "update_releases"},:with => "'project_id='+value")}"} = select_tag "projects",options_from_collection_for_select(projects,"id","name",params[:projects]), :class => "update_releases" %td.grid.full_panels{:style => "width: 20%"} Releases: %td.grid.full_panels{:style => "width: 20%"} = render :partial => 'releases', :object => @releases %td.grid.full_panels{:style => "width: 20%"} Cycles: %td.grid.full_panels{:style => "width: 20%"} = render :partial => 'cycles', :object => @cycles %tr %td.grid.full_panels{:style => "width: 20%"} %td.grid.full_panels{:style => "width: 20%"} %td.grid.full_panels{:style => "width: 20%"} =submit_tag "Submit" = javascript_include_tag "pages/ic"
partials code:= select_tag“releases”,options_from_collection_for_select(releases,“id”,“name”,params [:releases])
Jquery://根据项目下拉选项更改版本下拉列表。
$('.update_releases').live("change", function(){ $.ajaxSetup({beforeSend: function(xhr) {xhr.setRequestHeader("X-CSRF-Token", $("meta[name='csrf-token']").attr("content")); }}); var project_id=($(this).val()); $.post('/reports/update_releases', {project_id: project_id}); return false; })
我收到一个错误元素不支持此属性“作为弹出菜单在下拉框中选择。请在这里帮助我。
简单的解决方法是尝试在控制器中使用此代码:
respond_to do |format| format.js render :partial => 'releases', :locals { :releases => releases } end
在releases.js.haml
:
$('#releases').html('#{render :partial => '', :locals => {:releases => releases}}')