2017-02-21 90 views
1

我正在使用最新版本的真棒SweetAlert2 jquery插件。SweetAlert2 - 綁定另一個事件以取消按鈕?

我有一個簡單的SweetAlert 2按鈕。 1個按鈕是確認按鈕,另一個是取消按鈕。我正在使用html選項向警報添加文本輸入。當用戶按下確認按鈕時,執行AJAX調用並關閉警報。

現在我想使用取消按鈕來執行其他代碼,而不是關閉警報的默認操作。 (用戶可以使用showCloseButton:true關閉警報)。

所以簡而言之:如何刪除關閉處理程序並將自己的自定義處理程序添加到swal的取消按鈕?

+0

https://limonte.github.io/sweetalert2/#dismiss-handle –

+0

這不完全是我的意思,因爲這是關閉警報。我需要處理取消事件而不關閉警報。這可能嗎? – Piet

回答

2
  1. 您可以創建自定義的HTML文件,並有該至極取消按鈕將火關你自己的取消處理。

例如

<html> <!--custom.html-->  
    <button id="confirmBtn">confirm<button> 
    <button id="cancelBtn">cancel<button> 
<html> 

$.get("custom.html", function (data) { 
     swal({ 
      html: data, 
      showCloseButton: false, 
      showCancelButton: false, 
      showConfirmButton: false 
     }); 
     $("#cancelBtn").click(function() { 
      //handle your cancel button being clicked 
      $.when($.ajax({....})).then(function() { 
       // when all AJAX requests are complete 
      }); 
     }); 
     $("#confirmBtn").click(function() { 
      //handle your confirm button being clicked 
     }); 
    }); 
  • 你可以只記得上取消該彈出窗口。 將此添加到您的swal函數中。

    function (dismiss) { 
        if (dismiss === 'cancel') { 
         swal({..});    
        } 
    } 
    
  • 2

    只需添加您的自定義函數趕排斥反應,例如:

    swal({ 
        title: 'Some title', 
        text: 'some text for the popup', 
        type: 'warning', 
        showCancelButton: true, 
        cancelButtonText: 'Some text for cancel button' 
    }).then(function(){ 
        // function when confirm button clicked 
    }, function(dismiss){ 
        if(dismiss == 'cancel'){ 
         // function when cancel button is clicked 
        } 
    }); 
    

    ,你甚至可以添加更多的功能,以趕上其他解僱事件,只是讀SweetAlert2 Docs更多信息有關解僱事件。

    相關問題