sweet alert 2 gem подтвердите перенаправление окна на ссылку после нажатия ok

#javascript #ruby-on-rails #sweetalert #sweetalert2

#javascript #ruby-on-rails #sweetalert #sweetalert2

Вопрос:

Я не уверен, почему ok или cancel ничего не делают, в любом случае я хочу, когда кто-то нажимает на ok, чтобы перенаправить его на ссылку

 <div class="popup" onclick="sweetalertclick()">
              <p id="center"><%= image_tag "pickup.png" ,width: "80px"%><br>
                <span  onclick="sweetalertclick()"></span>Request a DDS pick u
                </span>
              </p>
            </div>
    <script>
    function sweetalertclick() {
    
    swal({
        title: "Request a DDS",
        text: "Please log in to DDS website to request a pick up, my code is: xxxx. By pressing ok you will link to google.com",
        showCancelButton: true,
        confirmButtonColor: "#DD6B55",
        confirmButtonText: "Ok",
        cancelButtonText: "Cancel",
        closeOnConfirm: false,
        closeOnCancel: false,
      },
      function(isConfirm){
        if (isConfirm) {
          window.location.href = "google.com"
        }
      }
    );
      
    }
    </script>
 

в файле gem

 gem 'rails-assets-sweetalert2', source: 'https://rails-assets.org'
gem 'sweet-alert2-rails'
gem 'sweet-alert-confirm'
 

в application.js

 //= require sweetalert2
//= require jquery
//= require jquery_ujs
//= require sweet-alert2-rails
//= require cocoon 
//= require sweet-alert-confirm  
//= require_tree .
 

в application.scss

  *= require_self
 *= require sweetalert2
 *= require_tree .
 */
 

Ответ №1:

Вы должны использовать .then() , а затем передать процедуру перенаправления внутри этого:

Пример:

 function sweetalertclick() {

swal({
    title: 'Request a DDS',
    text: "Please log in to DDS website to request a pick up, my code is: xxxx. By pressing ok you will link to google.com",
    showCancelButton: true,
    confirmButtonColor: "#DD6B55",
    confirmButtonText: "Ok",
  }).then((result) => {
  console.log(result)
    if (result) {
      window.location.href = "google.com";
    }
  });
  
}
 

Комментарии:

1. Спасибо за ваш ответ, но я не могу нажать ok или отменить

2. Можете ли вы повторить свою ошибку в JSFiddle и показать?

3. sweetalert2.js:223 SweetAlert2: неизвестный параметр «closeOnConfirm» sweetalert2.js:223 SweetAlert2: неизвестный параметр «closeOnCancel» warn @ sweetalert2.js:223

4. Все то же самое. Я обновил свой вопрос дополнительным кодом

5. Не могли бы вы воссоздать проблему в JSFiddle, пожалуйста?