【问题标题】:Sweet Alert 2 checkbox value conflicting with sweetalert2 confirm valueSweet Alert 2 复选框值与 sweetalert2 确认值冲突
【发布时间】:2020-02-28 13:42:23
【问题描述】:

我在 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

【问题讨论】:

    标签: jquery sweetalert2


    【解决方案1】:

    最后,下面的代码对我有用:

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

    这是因为在点击cancelbackdrop的情况下。 result 返回 dismiss 参数而不是 value 即在这两种情况下 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 2021-10-10
      相关资源
      最近更新 更多