使用Laravel表单确认删除?

17

确认删除有问题,所有操作都正常,但如果您在确认弹出窗口中点击取消,则会从数据库中删除该项目。有任何想法吗?请使用代码示例进行演示,我是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() !!}
10个回答

27
只需在您的onsubmit调用中添加返回语句即可。因此,函数返回的值将决定表单是否被提交。
'onsubmit' => 'return ConfirmDelete()'

非常感谢,对于链接,通过Laravel的“data-confirm”很容易解决,但这让我困惑了。 - malhal

6

在提交表单或删除记录时,简单放置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>

3
虽然这段代码片段可能解决了问题,但是包括解释 真正有助于提高您的帖子质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 - Derek Brown

3

您可以给表单一个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>

3

不进行任何函数调用...

'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


2
在我的新项目(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?');
}

1
只需返回 result - Peter Chaula

0

这里是在 Laravel Blade 中显示确认信息的简单方法。

<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>

0

我知道已经有一段时间了,但在我看来,这是最顺畅的方式:

'onsubmit' => 'return confirm("Do you want to delete this user?");'

在表单标签内。

0

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();
  }
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接