2016-12-15 42 views
0

我有一個在創建和更新時刷新的項目列表,我有一個表單,允許您添加元素,刪除,調整定價內聯。如果您想編輯分配給誰的任務,它會再次彈出一個包含表單部分的模式,但要編輯該對象。一切工作正常,並刷新,因爲它應該。Rails Ajax Refresh Breaks Modal上傳表單提交

的問題 在同一行我有一個回形針和一個攝像頭,還開拓含有形式上傳文檔,或單擊攝像頭上傳圖片情態動詞。這些工作正常工作,如果它正在加載,但在ajax刷新提交按鈕不起作用。

守則

指數部分:

<div class="row"> 
    <div class="col-md-12"> 

     <% if work_order.tasks.any? %> 
     <ul class="task-table"> 
      <% work_order.tasks.each_with_index do |task, index| %> 
      <li class="row task-table-row"> 

       <%= bootstrap_form_for(task, remote:true) do |f| %> 
        <%= render(partial:'tasks/task', locals:{task:task, f:f, index: index}) %> 
       <% end %> 

      </li> 
      <%= render(partial:'work_orders/modal_forms', locals:{task:task, index:index}) %> 
      <%= render(partial:'tasks/attachments', locals:{task:task, index: index}) %> 
      <%= render(partial:"tasks/edit", locals:{task:task, index:index})%> 
      <% end %> 
      <li class="row"> 
       <div class="table-total"> 
        <div class="col-md-6 col-md-push-6 column"> 
         <div id="total-wrap"> 
          <h3>Est. total: <span id="subTotal"></span></h3> 
         </div> 
        </div> 
       </div> 
      </li> 
     </ul> 
     <% else %> 
     <li class="row task-table-row"> 
      No tasks currently exist. 
     </li> 
     <% end %> 
    </div> 
</div> 
<div class="button-margin"> 
    <%= render(partial:'tasks/new', locals:{work_order:work_order})%> 
</div> 
<div id="placeHolder"></div> 
<%= link_to "Mark as Complete", work_order_path(work_order, work_order:{completed: true}), class:"btn btn-block btn-danger btn-outline b-r-xs", method: :put, remote:true %> 

任務部分:

<div class="col-md-4 column"> 
    <div class="pull-right column inline"> 
     <p class="assign inline"><small class="text-muted"> 
      <% if task.assignable_id.present? %> 
      <%= truncate(task.assignable.name, length:7) %> 
      <% else %> 
      assign 
      <% end %> 
     </small></p> 
     <a href="#" class="text-muted inline" data-toggle="modal" data-target="#editModal<%= index %>"> 
      <i class="fa fa-pencil"></i> 
     </a> 
    </div> 
    <p class="inline"><%= truncate(task.location, length:20) %></p> 
</div> 

<% if task.labor.present? && task.materials.present? %> 

<!-- if labor or materials are both available --> 
<div class="col-md-3 column"> 
    <%= link_to work_order_task_path(task.work_order, task, task:{labor:nil}), method: :put, remote:true, class:" text-muted pull-right" do %><i class="fa fa-pencil"></i><% end%> 
    <p class="inline pull-right"> 
     <span class="text-success currency"><%= number_to_currency(task.labor) %></span> 
    </p> 
</div> 
<div class="col-md-3 column"> 
    <%= link_to work_order_task_path(task.work_order, task, task:{materials:nil}), method: :put, remote:true, class:" text-muted pull-right" do %><i class=" fa fa-pencil"></i><% end%> 
    <p class="inline pull-right"> 
     <span class="text-success currency"><%= number_to_currency(task.materials) %></span> 
    </p> 
</div> 
<div class="col-md-2 column task" data-task="<%= task.id%>"> 

    <a id="deleteTask"> 
     <i class="fa fa-remove text-danger pull-right" > </i> 
    </a> 
    <a data-toggle="modal" data-target="#imageModal<%= index %>"> 
     <i class="fa fa-camera text-success pull-right"></i> 
    </a> 
    <a class="text-primary" data-toggle="modal" data-target="#attachmentModal<%= index %>"> 
     <i class="fa fa-paperclip pull-right"></i> 
    </a> 

    <% if task.task_photos.any? || task.attachments.any? %> 
    <a class="text-green" data-toggle="modal" data-target="#attachments<%= index %>" tooltip="View Attachments"> 
     <i class="fa fa-eye pull-right" > </i> 
    </a> 
    <% end %> 

</div> 

<% elsif task.labor.blank? && task.materials.present? %> 
<!-- Else if labor is blank and materials are present --> 
<div class="col-md-3 column"> 
    <%= f.text_field :labor, hide_label:true, prepend: "$", append: ".00", placeholder:"Est. Labor" %> 
</div> 
<div class="col-md-3 column"> 
    <%= link_to work_order_task_path(task.work_order, task, task:{materials:nil}), method: :put, remote:true, class:" text-muted pull-right" do %><i class=" fa fa-pencil"></i><% end%> 
    <p class="inline pull-right"> 
     <span class="text-success currency"><%= number_to_currency(task.materials) %></span> 
    </p> 
</div> 
<div class="col-md-2 column task" data-task="<%= task.id%>"> 
    <%= f.submit "Save", class:"btn btn-outline btn-success b-r-xs submitTask pull-right" %> 
</div> 

<% elsif task.materials.blank? && task.labor.present? %> 
<!-- Else if materials is blank and labor is present --> 
<div class="col-md-3 column"> 
    <%= link_to work_order_task_path(task.work_order, task, task:{labor:nil}), method: :put, remote:true, class:" text-muted pull-right" do %><i class=" fa fa-pencil"></i><% end%> 
    <p class="inline pull-right"> 
     <span class="text-success currency"><%= number_to_currency(task.labor) %></span> 
    </p> 
</div> 
<div class="col-md-3 column"> 
    <%= f.text_field :materials, hide_label:true, prepend: "$", append: ".00", placeholder:"Est. Material" %> 
</div> 
<div class="col-md-2 column task" data-task="<%= task.id%>"> 
    <%= f.submit "Save", class:"btn btn-outline btn-success b-r-xs submitTask pull-right" %> 
</div> 

<% else %> 
<!-- Else materials and labor are both blank --> 
<div class="col-md-3 column"> 
    <%= f.text_field :labor, hide_label:true, prepend: "$", append: ".00", placeholder:"Est. Labor" %> 
</div> 
<div class="col-md-3 column"> 
    <%= f.text_field :materials, hide_label:true, prepend: "$", append: ".00", placeholder:"Est. Material" %> 
</div> 
<div class="col-md-2 column task" data-task="<%= task.id%>"> 
    <%= f.submit "Save", class:"btn btn-outline btn-success b-r-xs submitTask pull-right" %> 
</div> 

<% end %> 

的情態動詞這不會提交

<!-- attachments modal --> 
<div class="modal inmodal fade" id="attachmentModal<%= index %>" tabindex="-1" role="dialog" aria-hidden="true"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
       <h4 class="modal-title">Attach Documents</h4> 
       <small class="font-bold">Upload quotes, sales orders, receipts and invoices.</small> 
      </div> 

      <div class="modal-body"> 
       <div class="row"> 
        <%= bootstrap_form_for [task, Attachment.new] do |f| %> 

        <div class="col-md-4"> 
         <%= f.text_field :name %> 
        </div> 
        <div class="col-md-4"> 
         <%= f.text_field :amount, prepend: "$", append: ".00", label:"Total (optional)" %> 
        </div> 
        <div class="col-md-4"> 
         <%= f.file_field :file %> 
        </div> 

       </div> 

      </div> 

      <div class="modal-footer"> 
       <button type="button" class="btn btn-white" data-dismiss="modal">Close</button> 
       <%= f.submit "Add Attachment", class:"btn btn-primary btn-outline b-r-xs" %> 
       <% end %> 
      </div> 
     </div> 
    </div> 
</div> 
<!-- end attachments modal --> 

<!-- images modal --> 
<div class="modal inmodal fade" id="imageModal<%= index %>" tabindex="-1" role="dialog" aria-hidden="true"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
       <h4 class="modal-title">Attach Images</h4> 
       <small class="font-bold">Upload images and descriptions.</small> 
      </div> 

      <div class="modal-body"> 
       <div id="target"> 
       </div> 
       <%= bootstrap_form_for [task, TaskPhoto.new] do |f| %> 

       <div class="field"> 
        <%= f.hidden_field :property_manager_id, value:current_manager.id %> 
       </div> 
       <div class="field"> 
        <%= f.file_field :photo %> 
       </div> 
       <div class="field"> 
        <%= f.text_field :description %> 
       </div> 
      </div> 

      <div class="modal-footer"> 
       <button type="button" class="btn btn-white btn-outline b-r-xs" data-dismiss="modal">Close</button> 
       <%= f.submit "Add Photo", class:"btn btn-primary btn-outline b-r-xs" %> 
       <% end %> 
      </div> 
     </div> 
    </div> 
</div> 
<!-- end images modal --> 

回答

0

原來,在我的模態頁腳提交提交錯誤。

儘管它在初始頁面加載時工作得很好,但它在被ajax刷新時會導致錯誤。將提交按鈕移到模態體中,其餘部分解決了我的問題。

希望這可以幫助未來的人!