我使用Swal替换所有JavaScript默认警报和内容。 我的一个页面上有一个表单,我也使用Swal要求用户确认其操作(删除文件)。
问题是我无法使表单正常工作。这是Swal代码:
const int a = 2;
int b = 2;
int main()
{
function_A(&a); // a is constant => results in undefined behaviour
// when function_B tries to modify the data
function_A(&b); // OK
}
这是我的提交按钮:
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;
}
});
});
这里有几点要提及:
在JavaScript / jQuery方面,我完全是个新手。所以如果你在这里发现任何搞笑的错误,请原谅我的新秀< 3
我对此进行了大量搜索并尝试了我发现的所有建议,例如使用许多用户建议的isConfirm功能。但都没有效果。使用isConfirm函数实际上会破坏整个代码,甚至警报部分也不会弹出。
.then((willDelete)部分代码是Swal的默认代码,实际上工作正常。
类deleteFile指向提交按钮。 ID form1指向表单本身。
在代码的当前状态下,当用户按下确认按钮时,页面会刷新,看起来已完成作业。但它实际上不起作用。我已经编写了以下代码来测试它:
<button type="submit" name="delete_file" class="btn btn-danger deleteFile">Delete</button>
但它并没有回应任何东西(QQ)
毋庸置疑,delete_file是我提交按钮的名称属性。
答案 0 :(得分:1)
毋庸置疑,delete_file是我提交按钮的名称属性。
那就是问题所在。只有单击该按钮,才会提交提交按钮的名称。如果您使用JavaScript提交表单,则不会提交提交按钮名称和值。
为了防止出现这种情况,您可以将其添加到隐藏的输入中,而不是在提交按钮中添加名称/值:
<input type="hidden" name="delete_file" value="Delete">
或者您可以检查是否设置了其他字段,例如您要在案例中删除的文件的ID。