首页 > 解决方案 > Sweet Alert 2 复选框值与 sweetalert2 确认值冲突

问题描述

我在 sweetalert2 中使用复选框作为:

            $(document).on("click", "#deleteUploadedFile", function () {
                Swal.fire({
                    title: 'Are you sure you want to remove selected uploads?',
                    type: 'warning',
                    input: 'checkbox',
                    inputValue: 1,
                    inputPlaceholder:
                        'Delete Permanently',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: 'Yes, Remove them!',
                }).then((result) => {
                    console.log(result);
                    if (result.value) {

                        $('#deleteUploadsForm').submit();

                    }
                })
            });

使用此代码,表单不会提交,因为如果未检查则result.value变为。0

但是,如果我删除以下 3 个选项,它可以正常工作。

input: 'checkbox',
inputValue: 1,
inputPlaceholder:
 'Delete Permanently',

但是,我想发送此复选框值,以便我可以软删除或强制删除服务器上的数据。

jsfiddle

标签: jquerysweetalert2

解决方案


最后,以下代码适用于我:

if (result.value === 0 || result.value) {
  $('#deleteUploadsForm').submit();
}

这是因为在点击cancel和的情况下backdropresult返回dismiss参数不是valueie 在这两种情况下都是result.value未定义的。

result.dismiss = "cancel"
result.dismiss = "backdrop"

jsfiddle

并附加价值:

let input = $("<input>")
             .attr("type", "hidden")
             .attr("name", "permanent_delete")
             .val(result.value);
$('#deleteUploadsForm').append(input);

推荐阅读