Как использовать успех SweetAlert с кнопкой ОК? - PullRequest
0 голосов
/ 05 мая 2019

Я создал SweetAlert, используя код ниже. После того, как я это использовал, был показан результат НО Я пока не нажимаю кнопку ОК, уже перешел на заданный мной URL-адрес.

Это сценарий SweetAlert, который я создал (я сохраняю в своем сценарии, когда хочу использовать, затем беру его, потому что использую Laravel Framework).

<script type="text/javascript">
  function showSuccessSwal(message) {
    Swal.fire(
      'Success',
      message,
      "success"
    );
  }

  function showErrorSwal(message) {
    Swal.fire(
      'Error',
      message,
      "error"
    );
  }
</script>

И этот скрипт я использую:

  <script type="text/javascript">
    $('#somthing-form').submit(function(e) {
      e.preventDefault();

      var form = $(this);

      $.ajax({
        type: 'POST', // GET, POST, PUT
        url: form.attr('action'),
        data: form.serialize(),
        success: function(result) {
          showSuccessSwal(result.message);
          window.location.href="{{ route('something.index') }}";
        },
        error: function(xhr) {
          var errorString = '';
          var errors = xhr.responseJSON.errors;
          Object.keys(errors).forEach(function(key) {
            var error_message = errors[key];
            $.each(error_message, function(key, value) {
              errorString += value + '\n';
            });
          });
          showErrorSwal(errorString);
        }
      });
    });
  </script>

Я хочу, чтобы результат работал так:

  1. Я нажимаю кнопку отправки.
  2. Отображение SweetAlert с помощью кнопки ОК.
  3. Подождите, пока пользователь нажмет кнопку ОК, затем перейдите к заданному мной URL-адресу (не переходите прямо к URL-адресу, прежде чем я нажму кнопку ОК).

1 Ответ

0 голосов
/ 05 мая 2019

вам нужно позвонить ласточке, прежде чем позвонить в ajax

swal({
    title: 'Are you sure to go ahead?,
        type: 'warning',
        showCancelButton: true,
        confirmButtonText: 'Yes, please!'
    }).then(function(result) {
        if (result.value) { // when you click `yes, please!`
            $.ajax({
                type: 'POST', // GET, POST, PUT
                url: form.attr('action'),
                data: form.serialize(),
                success: function(result) {
                showSuccessSwal(result.message);
                window.location.href="{{ route('something.index') }}";
            },
            error: function(xhr) {
                var errorString = '';
                var errors = xhr.responseJSON.errors;
                Object.keys(errors).forEach(function(key) {
                    var error_message = errors[key];
                    $.each(error_message, function(key, value) {
                        errorString += value + '\n';
                    });
                });
                showErrorSwal(errorString);
            });
        }
});
...