Значение флажка Sweet Alert 2 конфликтует со значением подтверждения sweetalert2 - PullRequest
1 голос
/ 28 февраля 2020

Я использую флажок в 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

1 Ответ

0 голосов
/ 29 февраля 2020

Наконец, следующий код работает для меня:

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

Это потому, что в случае нажатия на cancel и backdrop. 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);
...