在我的 Controller 中,我有:

  respond_to do |format|
    format.js
  end

在我的rjs中:
page.replace_html("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials)

要么
page.replace("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials)

在我的部分中:(
<% 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 %>

在我的原始 View 中:
  <span id="source_credential_list">
    <%= render :partial => 'source_credential_list' %>
  </span>

当我确实更换它时,它的效果很好,但是只有一次,第二次,我收到一个警报为空的警报,我怀疑是因为跨度已消失。如果我执行replace_html,它会起作用,它会更新范围,但会将实际的rjs / javascript放入范围中,包括新的选择/下拉列表。所以像这样:

来源凭证
尝试{Element.update(“source_credential_list”,“\ n \ n \ n”); } catch(e){alert('RJS error:\ n \ n'+ e.toString()); alert('Element.update(\“source_credential_list \”,\“\ n \ n \ n \”);');抛出

我尝试将跨度移动到部分区域并同时进行两个组合,但没有任何效果。我肯定这很明显...

最佳答案

我不确定是什么代码触发了此操作,但是假设它是由link_to_remote调用触发的,请确保您在link_to_remote调用中没有:update =>“source_credential_list”参数-否则它们都将执行RJS并更新使用javascript代码指定的元素。

看到这里:http://railsforum.com/viewtopic.php?pid=44191#p44191

同样,当您执行page.replace时,它仅工作一次,因为page.replace替换了指定元素,其中包括周围的标记,因此,除非您指定的partial包括span标记,否则它将在第一次使用时消失。

10-06 16:15