Подтвердите удаление с помощью формы laravel?

Проблема с подтверждением удаления, все работает нормально, но если вы нажмете кнопку «Отмена» во всплывающем окне подтверждения, он удалит элемент из БД. Есть идеи? Пожалуйста, покажите с примером кода, я новичок в Laravel.

<script>

function ConfirmDelete()
{
var x = confirm("Are you sure you want to delete?");
if (x)
return true;
else
return false;
}

</script>

{!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'onsubmit' => 'ConfirmDelete()']) !!}

{!! Form::hidden('case_id', $project->id, ['class' => 'form-control']) !!}

{!! Form::button('<i class="glyphicon glyphicon-trash"></i>', array('type' => 'submit', 'class' => 'specialButton')) !!}

{!! Form::close() !!}

14

Решение

Просто добавьте возврат к вашему onsubmit вызов. поэтому значение, которое возвращает функция, определяет, будет ли форма отправлена ​​или нет.

'onsubmit' => 'return ConfirmDelete()'
23

Другие решения

Просто введите код jQuery для подсказки при отправке формы или удалении записи.

jQuery(document).ready(function($){
$('.deleteGroup').on('submit',function(e){
if(!confirm('Do you want to delete this item?')){
e.preventDefault();
}
});
});
4

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(".specialButton").click(function(){
return confirm("Do you want to delete this ?");
});
</script>
4

Вы можете дать форме идентификатор и использовать jQuery:

 {!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'id' => 'FormDeleteTime']) !!}

<script type="text/javascript">
$("#FormDeleteTime").submit(function (event) {
var x = confirm("Are you sure you want to delete?");
if (x) {
return true;
}
else {

event.preventDefault();
return false;
}

});
</script>
3

В моем новом проекте (Laravel 5.3) я использую следующее:

{!! Form::open(['method' => 'DELETE', 'route' => ['admin.user.delete', $user], 'onsubmit' => 'return confirmDelete()']) !!}
<button type="submit" name="button" class="btn btn-default btn-sm">
<i class="fa fa-trash-o"></i>
</button>
{!! Form::close() !!}

Упомянуть ‘onsubmit’ => ‘return verifyDelete ()’ в противном случае у меня были некоторые проблемы, когда я закрывал оповещение, не подтверждая вопрос.

JavaScript:

function confirmDelete() {
return confirm('Are you sure you want to delete?');
}
2

без каких-либо вызовов функций …

'onsubmit' => 'return confirm("are you sure ?")'

пример

            {!! Form::open(['url'=>'posts/'.$post->id.'/delete','method'=>'DELETE','class'=>'form-horizontal',
'role'=>'form','onsubmit' => 'return confirm("are you sure ?")'])!!}

используя Laravel 5

1

Единственное, что происходит сейчас, это то, что вы получаете всплывающее окно, которое задерживает перенаправление на страницу удаления.

Что вы можете сделать, это только сгенерировать ссылку, которая в свою очередь генерирует форму в js. Как то, что они делают здесь (только с JQuery)

0

Просто подумал, что обобщу это немного:

.HTML

<form method="post" action="..." class="has-confirm" data-message="Delete this Thing?">...</form>

.JS

$("form.has-confirm").submit(function (e) {
var $message = $(this).data('message');
if(!confirm($message)){
e.preventDefault();
}
});
0