Sweetalert удаляет элементы, даже если мы нажимаем «НЕТ» - PullRequest
0 голосов
/ 25 апреля 2020

Я использовал AJAX с Laravel и пытался создать операцию CRUD для практики, где я использовал поле подсвечивания для отображения заметки до того, как поле действительно будет удалено из базы данных. В окне предупреждения SWAL указано «Вы хотите удалить», и если пользователь нажимает «ДА», поле должно быть удалено, иначе ничего не должно происходить. В моем случае, независимо от того, что я нажимаю, будь то кнопка «ДА» или «НЕТ», или даже если я щелкаю вдали от окна предупреждения, она просто удаляет запись из базы данных, несмотря ни на что. Ниже приведен фрагмент кода PS: Я ИСПОЛЬЗУЮ AX IOS, ЧТОБЫ ОТПРАВИТЬ ЗАПРОСЫ СЕРВЕРУ

deleteUser(id) {
    // Handles user deletion
       Swal.fire({
            title: 'Are you sure?',
            text: "You won't be able to revert this!",
            icon: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
        }).then((result) => {
               this.form.delete('api/user/' + id)
                    .then(() => {
                        // Fire the manipulated user event
                        Fire.$emit('ManipulateUser');

                       // do something if request was successfull
                        if(result.value) {
                            Swal.fire(
                                'Deleted!',
                                'Your file has been deleted.',
                                'success'
                            )
                        } 
                   }).catch(() => {
                        // do something if request fails
                   });
                })
            }

1 Ответ

1 голос
/ 25 апреля 2020

Вам необходимо добавить

Swal.fire({
  .
  .
  .
}).then((result) => {
  if (result.value) { // This check here. This contains value for the delete button. Its null for cancel button
    ...
  }
})

Вы отправляете запрос на удаление без какой-либо проверки. Поэтому примените эту проверку перед удалением вызова

...