[英]Confirm delete with laravel form?
确认删除有问题,一切正常,但是如果您在确认弹出窗口中单击取消,它将从数据库中删除该项目。 有任何想法吗? 请显示代码示例,我是 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() !!}
只需添加返回您的onsubmit
调用。 所以函数返回的值决定了表单是否被提交。
'onsubmit' => 'return ConfirmDelete()'
<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>
提交表单或删除记录时,简单地将jQuery代码用于提示框。
jQuery(document).ready(function($){
$('.deleteGroup').on('submit',function(e){
if(!confirm('Do you want to delete this item?')){
e.preventDefault();
}
});
});
你可以给表单一个id,并使用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>
在我的新项目(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 confirmDelete()'否则我在关闭警报时遇到了一些问题而没有确认问题。
JavaScript的:
function confirmDelete() {
return confirm('Are you sure you want to delete?');
}
没有任何函数调用...
'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
现在唯一发生的事情就是你得到一个弹出窗口,它会将重定向延迟到删除页面。
你可能做的只是生成一个链接,然后在js中生成一个表单。 就像他们在这里做的一样(仅限JQuery)
我想我会稍微概括一下:
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();
}
});
我知道它已经有一段时间了,但这是IMO最顺畅的方式:
'onsubmit' => 'return confirm("Do you want to delete this user?");'
在表单标签中。
这是 laravel 刀片确认显示中的简单方法。
<form action="{{route('users.destroy',$item->id)}}" method="post">
@csrf
@method('DELETE')
<button type="submit" onclick ="return confirm('Do you want to delete this user?')" class="btn btn-sm btn-danger btn-icon-split">
<span class="icon text-white-50">
<i class="fas fa-trash"></i>
</span>
</button>
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.