【问题标题】:Rails render format js with unique idsRails 渲染具有唯一 ID 的格式 js
【发布时间】:2015-11-11 10:11:23
【问题描述】:
<div id="contact_form_<%= i %>"></div>

我在每个循环中都有一个 id。我想在每个这些 id 上呈现一个表单。

$("#contact_form").html("<%= j(render 'form') %>");

但是,我似乎无法找到一种方法来呈现具有唯一 ID 的表单。我试过$("#contact_form&lt;%= i %&gt;") 但javascript 不接受erb 标签。知道怎么做吗?

【问题讨论】:

  • 是不同的形式还是一样的?
  • 它对所有人的不同 id
  • 我问你是一起更新所有行还是一次更新一个?因为如果你一起更新,只需使用 id 的通配符,如果是一个一个,你需要在 action 上传递索引,然后在 AJAX 调用中使用它。

标签: javascript ruby-on-rails ajax ruby-on-rails-4


【解决方案1】:

如果您在js.erb 模板(即app/views/controller/action.js.erb)中呈现您的代码,您可以传递任意数量的ERB

<% @ids.each do |i| %>
   $("#contact_form_<%=j i %>").html("<%= j(render 'form') %>");
<% end %>

如果您有多个具有不同ids 的表单,为什么不将它们传递给form 部分:

#app/views/controller/action.js.erb
<%= render "form", collection: @ids, as: :id %>

#app/views/controller/_form.html.erb
<%= content_tag :div, id: "contact_form_#{id}" do %>
   <%= form_tag [[url]], id: id do %>
      ...
   <% end %>
<% end %>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2015-09-02
  • 2018-11-02
  • 2013-03-25
  • 2011-09-26
  • 1970-01-01
  • 2020-04-26
相关资源
最近更新 更多