用 laravel 表单确认删除?
Posted
技术标签:
【中文标题】用 laravel 表单确认删除?【英文标题】:Confirm delete with laravel form? 【发布时间】:2014-12-24 21:01:26 【问题描述】:确认删除的问题,一切正常,但如果您在确认弹出窗口中单击取消,它将从数据库中删除该项目。有任何想法吗?请用代码示例显示,我是 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() !!
【问题讨论】:
【参考方案1】:只需将返回添加到您的onsubmit
电话。所以函数返回的值决定了表单是否被提交。
'onsubmit' => 'return ConfirmDelete()'
【讨论】:
非常感谢,通过 Laravel 的“数据确认”很容易获得链接,但这被难住了。【参考方案2】:提交表单或删除记录时的提示框的简单放置jQuery代码。
jQuery(document).ready(function($)
$('.deleteGroup').on('submit',function(e)
if(!confirm('Do you want to delete this item?'))
e.preventDefault();
);
);
【讨论】:
【参考方案3】:<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>
【讨论】:
虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案4】:你可以给表单一个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>
【讨论】:
【参考方案5】:没有任何函数调用...
'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
【讨论】:
【参考方案6】:在我的新项目(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?');
【讨论】:
直接返回result
【参考方案7】:
现在唯一发生的事情是您会收到一个弹出窗口,它会延迟重定向到删除页面。
您可能会做的只是生成一个链接,然后在 js 中生成一个表单。 Like what they're doing here (only with JQuery)
【讨论】:
【参考方案8】:只是想我会概括一下:
.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();
);
【讨论】:
【参考方案9】:我知道已经有一段时间了,但这是 IMO 最顺畅的方式:
'onsubmit' => 'return confirm("Do you want to delete this user?");'
在表单标签中。
【讨论】:
以上是关于用 laravel 表单确认删除?的主要内容,如果未能解决你的问题,请参考以下文章