在我的控制器中我有:
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 %>
在我的原创视图中:
<span id="source_credential_list">
<%= render :partial => 'source_credential_list' %>
</span>
当我更换它时效果很好,但只有一次,第二次我得到一个null的警报,我怀疑是因为跨度消失了。如果我做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 \”);');扔e}
我尝试将跨度移动到部分并进行两个组合,但没有任何效果。我确定它显而易见......
答案 0 :(得分:1)
我不确定触发此操作的代码是什么,但假设它是由link_to_remote调用触发的,请确保您没有:update =&gt; link_to_remote调用中的“source_credential_list”参数 - 否则它将执行RJS并更新使用javascript代码指定的元素。
见这里:http://railsforum.com/viewtopic.php?pid=44191#p44191
此外,当你执行page.replace时,它只能运行一次,因为page.replace会替换指定的元素包括周围的标记,所以除非你指定的部分包含span标记,否则它'' ll第一次使用时会消失。