使用甜蜜警报(又名Swal)提交表格



我正在使用Swal来替换所有JavaScript默认警报和东西。 在我的一个页面上有一个表单,我也使用 Swal 要求用户在实现之前确认他的操作(删除文件)。

问题是我无法使表单正常工作。这是 Swal 代码:

jQuery('.deleteFile').click(function(event){
event.preventDefault();
swal({
title: "You sure about deleting this file?",
icon: "warning",
buttons: {
cancel: "hmm let me think this through",
confirm: "100% sure !",
},
dangerMode: true,
})
.then((willDelete) => {
if (willDelete) {
$('#form1').submit();
} else {
return false;
}
});
});

这是我的提交按钮:

<button type="submit" name="delete_file" class="btn btn-danger deleteFile">Delete</button>

这里要提的很少:

  • 在JavaScript/jQuery方面,我完全是一个新手。所以如果你在这里发现任何搞笑的错误,请原谅我的菜鸟<3

  • 搜索了很多,并尝试了我找到的所有建议,例如使用许多用户建议的isConfirm 功能。但没有一个奏效。isConfirm 函数的使用实际上会错误整个代码,甚至警报部分也不会弹出。

  • 代码的.then((willDelete)部分是Swal的默认代码,实际上工作正常。

  • 类 deleteFile 指向提交按钮。ID 表单 1 指向表单本身。

  • 在代码的当前状态下,当用户按下确认按钮时,页面将刷新,看起来它已完成工作。但它实际上不起作用。我编写了以下代码来测试它:

    if(isset($_POST['delete_file'])){
    echo 'WOOT IT WORKED!';
    }
    

但它不回应任何东西(QQ)

不用说,delete_file是我的提交按钮的名称属性。

不用

说,delete_file是我的提交按钮的名称属性。

嗯,这就是问题所在。仅当您单击提交按钮时,才会提交该按钮的名称。如果使用 JavaScript 提交表单,则不会提交提交按钮名称和值。

为了防止这种情况,您可以将它们添加到隐藏的输入中,而不是在提交按钮中使用名称/值,如下所示:

<input type="hidden" name="delete_file" value="Delete">

或者,您可以检查是否设置了其他字段,例如要删除的文件的 ID。

最新更新