使用 Sweet Alert(又名 Swal)提交表单
Submitting form using Sweet Alert (aka 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 函数。但是 none 起作用了。 isConfirm 函数的使用实际上是整个代码的错误,甚至alert 部分都没有弹出。
代码中的.then((willDelete)部分是Swal的默认代码,实际运行正常
class deleteFile 指向提交按钮。 ID form1 指向表单本身。
在代码的当前状态下,当用户按下确认按钮时,页面会刷新,看起来已经完成了工作。但它实际上不起作用。我写了下面的代码来测试它:
if(isset($_POST['delete_file'])){
echo 'WOOT IT WORKED!';
}
但是没有回显(QQ)
不用说delete_file就是我提交按钮的name属性
Needless to say that delete_file is the name attribute of my submit button.
嗯,这就是问题所在。提交按钮的名称只有在您单击该按钮时才会提交。如果您使用 JavaScript 提交表单,则不会提交提交按钮名称和值。
为了防止这种情况发生,您可以不在提交按钮中使用 name/value,而是像这样将它们添加到隐藏输入中:
<input type="hidden" name="delete_file" value="Delete">
或者您可以检查是否设置了另一个字段,例如您要删除的文件的 ID。
我正在使用 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 函数。但是 none 起作用了。 isConfirm 函数的使用实际上是整个代码的错误,甚至alert 部分都没有弹出。
代码中的.then((willDelete)部分是Swal的默认代码,实际运行正常
class deleteFile 指向提交按钮。 ID form1 指向表单本身。
在代码的当前状态下,当用户按下确认按钮时,页面会刷新,看起来已经完成了工作。但它实际上不起作用。我写了下面的代码来测试它:
if(isset($_POST['delete_file'])){ echo 'WOOT IT WORKED!'; }
但是没有回显(QQ)
不用说delete_file就是我提交按钮的name属性
Needless to say that delete_file is the name attribute of my submit button.
嗯,这就是问题所在。提交按钮的名称只有在您单击该按钮时才会提交。如果您使用 JavaScript 提交表单,则不会提交提交按钮名称和值。
为了防止这种情况发生,您可以不在提交按钮中使用 name/value,而是像这样将它们添加到隐藏输入中:
<input type="hidden" name="delete_file" value="Delete">
或者您可以检查是否设置了另一个字段,例如您要删除的文件的 ID。