簡體   English   中英

單擊時渲染帶有jquery的rails部分

[英]Render rails partial with jquery on click

我有一個允許用戶構建簡歷的應用程序。 目前,我有一個表單(Resume),可以為我的其他每個模型(教育,體驗等)加載嵌套表單。 默認情況下,這些部分是可見的。 我希望用戶能夠單擊要添加的部分(例如,他們將從列表中單擊“教育”,並會附加教育表格塊),而不是默認情況下不顯示表格。 jQuery的。 在我的表單中,制作了一個帶有“ form-b​​lock-section”類的div,然后將每個單獨的表單塊移動到了自己的部分中。

# _form.html.erb

<%= form_for(@resume) do |f| %>
  <% if @resume.errors.any? %>
   <div id="error_explanation">
    <h2><%= pluralize(@resume.errors.count, "error") %> prohibited this resume from being saved:</h2>

    <ul>
      <% @resume.errors.full_messages.each do |message| %>
        <li><%= message %></li>
      <% end %>
    </ul>
   </div>
  <% end %>

  <div class="field">
    <%= f.text_field :title, class: "form-control", placeholder: "Title" %>
  </div>
  <div class="field">
    <%= f.text_area :summary, class: "form-control", placeholder: "Summary" %>
  </div>
  <div class="field">
    <%= f.text_field :job_title, class: "form-control", placeholder: "Desired Job Title" %>
  </div>

  <div class="form-block-section">

     *****
     // THIS IS WHERE I WANT THE FORM BLOCKS TO BE APPENDED WHEN THE USER CLICKS THE LINK

  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

就像我說的那樣,我為用戶可以選擇的每個簡歷部分創建了一個局部。 這是一個例子。

# _education_block.html.erb

<div id="educations" class="field build-block">
   <h3>Education</h3>
   <%= f.fields_for :educations do |education| %>
   <% end %>
   <div class="links">
     <%= link_to_add_association 'add education', f, :educations %>
   </div>
</div>

在我的resumes.js中

# resumes.js

$('#add-education-block').on('click', function(){
    $('.form-block-section').append("<%= escape_javascript(\"#{render 'education_block'}\").html_safe %>");
});

現在的問題:

它以字符串形式呈現在我的頁面上:<%= escape_javascript(“#{render'education_block'}”)。html_safe%>

您需要將.erb添加到resume.js-resume.js.erb。

此外,您可能想使用嵌套表單-https: //github.com/ryanb/nested_form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM