2016-12-17 42 views
0

即時通訊工作在列出記錄的應用程序,每個記錄我有一個編輯和刪除按鈕。總是提交相同的表格

在我看來,我已經在刪除按鈕中包含了一個採取動作url路徑的表單,它們之間的不同之處在於需要使用不同的id來稍後在刪除中標識記錄。有了這個即時通訊使用甜蜜的警報,刪除記錄之前彈出只是爲了確認,並在確認它提交表單時,唯一的問題是提交第一個表單,我不是因爲id是第一個,我相信是不是在我的JavaScript提交當前的表單,不能找出爲什麼沒有工作。

我的JS代碼:

<script> 
     $('button.delete').on('click', function(event){ 
      event.preventDefault(); 
      swal({ 
         title: "Are you sure", 
         text: "Can i delete?", 
         type: "warning", 
         showCancelButton: true, 
         confirmButtonColor: "#DD6B55", 
         confirmButtonText: "Sim!", 
         closeOnConfirm: false 
        }, 
        function(){ 
         $(".delete-form").submit(); 
        }); 
     }) 
    </script> 

在for循環

<form class="delete-form" style="display: inline" method="POST" action="/admin/categories/{{$category->id}}" > 
              {{ method_field('DELETE') }} 
              {{csrf_field()}} 
             <button class="btn btn-danger btn-xs delete" ><i class="fa fa-trash"></i> delete</button> 

             </form> 

回答

1

$(".delete-form")比賽所有的形式,而不僅僅是一個與用戶點擊的按鈕。您需要使用$(this)中的DOM遍歷來獲取選定的表單。

$('button.delete').on('click', function(event){ 
     event.preventDefault(); 
     var form = $(this).closest(".delete-form"); 
     swal({ 
        title: "Are you sure", 
        text: "Can i delete?", 
        type: "warning", 
        showCancelButton: true, 
        confirmButtonColor: "#DD6B55", 
        confirmButtonText: "Sim!", 
        closeOnConfirm: false 
       }, 
       function(){ 
        form.submit(); 
       }); 
    }) 
0

可以使用closest()屬性提交的具體形式是這樣的:

$(function() { 
 

 
    $('.delete').on('click', function(e) { 
 
    \t e.preventDefault(); 
 
    var action_attr = $(this).closest('form.delete-form').attr('action'); 
 
    \t console.log("Delete form - " + action_attr); 
 
    // $(this).closest('.delete-block').find('form').submit(); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form class="delete-form" style="display: inline" method="POST" action="/admin/categories/1" > 
 
    <button class="btn btn-danger btn-xs delete" ><i class="fa fa-trash"></i> delete 1</button> 
 
</form> 
 

 

 
<form class="delete-form" style="display: inline" method="POST" action="/admin/categories/2" > 
 
    <button class="btn btn-danger btn-xs delete" ><i class="fa fa-trash"></i> delete 2</button> 
 
</form> 
 

 

 

 
<form class="delete-form" style="display: inline" method="POST" action="/admin/categories/3" > 
 
    <button class="btn btn-danger btn-xs delete" ><i class="fa fa-trash"></i> delete 3</button> 
 
</form>

希望THI幫助!