繁体   English   中英

Laravel:确认删除不起作用

[英]Laravel: Confirmation deletion does not work

我在删除确认时遇到问题; 具体来说,当我单击删除按钮时,该项目被直接删除,而没有首先出现确认删除的 window。

有人能帮我吗?

 function confirmDelete(){ let deleteLink = document.querySelector('.delete'); deleteLink.addEventListener('click', function(event) { event.preventDefault(); let choice = confirm(this.getAttribute('data-confirm')); if (choice) { window.location.href = this.getAttribute('action'); } }); }
 <form action="{{ route('client.destroy',compact('client'))}}" method="POST"> <a class="btn btn-primary" href="{{route('client.edit', compact('client'))}}">Edit</a> @csrf @method('DELETE') <button type="submit" class="btn btn-danger delete" onclick="confirmDelete()" data-confirm="Sure?">Delete</button> </form>

这是解决方案。

设置按钮类型按钮并将id设置为form。

<form action="{{ route('client.destroy',compact('client'))}}" method="POST" id="form_id">

  <a class="btn btn-primary" href="{{route('client.edit',compact('client'))}}">Edit</a>

@csrf
@method('DELETE')

  <button type="button" class="btn btn-danger delete" onclick="confirmDelete()" data-confirm="Sure?">Delete</button>
</form>

您的 function 发生了一些变化。

function confirmDelete() {
  let deleteLink = document.querySelector('.delete');

  deleteLink.addEventListener('click', function (event) {
    event.preventDefault();

    let choice = confirm($(this).data('confirm'));

    if (choice) {
      $('#form_id').submit();
      // window.location.href = this.getAttribute('action');
    }
  });
}

如果您为多个客户执行此操作,请确保 FORM ID 是唯一的。

您应该防止输入的默认行为(即提交表单 onclick):

onclick="event.preventDefault();confirmDelete()"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM