用 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 表单确认删除?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 验证登录表单验证在密码确认中失败?

在 Laravel 中提交表单后如何重定向确认页面?

laravel 无法删除记录

在 laravel 中删除确认

laravel modal 删除确认不会去破坏路由

Laravel 使用 href 提交删除表单