2016-12-17 3 views
0

im работает в приложении, в котором перечислены записи, и у каждой записи есть кнопка для редактирования и удаления., представляющий всегда ту же форму

В моем взгляде я обернул в кнопку удаления форму, которая принимает путь к URL-адресу действия, что отличает друг от друга, это тот, который принимает другой идентификатор, чтобы позже идентифицировать запись в деле удаления. С помощью этого im, используя сладостное предупреждение, оно всплывает перед удалением записи только для подтверждения, и в случае, если она подтверждает, что она представляет форму, единственная проблема заключается в том, что она представляет первую форму, и я не это, потому что идентификатор является первым, i верьте, что не отправляет текущую форму в свой javascript, не могу понять, почему isnt работает.

Мой код 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> 

внутри для цикла

<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") спичек все в формы, а не только один с помощью кнопки пользователь нажал на. Чтобы получить выбранную форму, вам необходимо использовать обход DOM от $(this).

$('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>

Надежда Тхи помогает!

Смежные вопросы