Ruby on rails rails 2替换html将javascript放入页面

Ruby on rails rails 2替换html将javascript放入页面,ruby-on-rails,ajax,prototypejs,rjs,Ruby On Rails,Ajax,Prototypejs,Rjs,在我的控制器中,我有: respond_to do |format| format.js end 在我的rjs中: page.replace_html("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials) 或 在我看来:( 在我看来: <span id="source_credential_list"&g

在我的控制器中,我有:

  respond_to do |format|
    format.js
  end
在我的rjs中:

page.replace_html("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials) 

在我看来:(


在我看来:

  <span id="source_credential_list">
    <%= render :partial => 'source_credential_list' %>
  </span>

'源\凭证\列表'%>
当我确实替换它时效果很好,但只有一次,第二次我收到一个空警报,我怀疑是因为跨度消失了。如果我确实替换了html,它会有点效果,它会更新跨度,但它会将实际的rjs/javascript放入跨度,包括新的选择/下拉列表。因此类似这样:

源凭证 尝试{Element.update(“source\u-credential\u-list”,“\n\n”);}catch(e){alert('RJS错误:\n\n'+e.toString());alert('Element.update(\'source\u-credential\u-list\',\“\n\n\”);抛出e}


我尝试将span移到partial中并同时执行两个组合,但都不起作用。我确信这很明显……

我不确定是哪段代码触发了此操作,但假设它是由链接到远程调用触发的,请确保您没有:update=>“source\u credential\u列表”参数,否则它将执行RJS并更新用javascript代码指定的元素

请看这里:


另外,当您执行page.replace时,它只工作一次,因为page.replace将替换指定的元素,包括周围的标记,因此除非您指定的部分包含span标记,否则它将在第一次使用时消失。

太棒了,您是对的,它是一个onchange=>remote\u函数,但它确实有一个更新cl也因为它。
<% fields_for(@brand_report_source_credential_key) do |ff|  %>
   <%= ff.select :source_credential_id , options_from_collection_for_select(@all_source_credentials,'id','credential_display_name')%>
<% end %>
  <span id="source_credential_list">
    <%= render :partial => 'source_credential_list' %>
  </span>