<div id="contact_form_<%= i %>"></div>
我在每个循环中都有一个id。我想在每个id上呈现一个表单。
$("#contact_form").html("<%= j(render 'form') %>");
但是,我似乎无法找到一种方法来呈现具有唯一ID的表单。我试过了$("#contact_form<%= i %>")
,但javascript没有采用erb标记。知道怎么做吗?
答案 0 :(得分:2)
如果您在js.erb
模板(IE 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 %>