2

デフォルトの confirm() ダイアログを sweetAlert2 確認ダイアログでオーバーライドしようとしています。

ただし、[OK] をクリックせずに戻って削除プロセスを続行します。

    $("a.confirm").click(function(){
        swal({   
              title: 'Are you sure?',   
              text: $(this).attr('data-message'),   
              type: 'warning',   
              showCancelButton: true,   
              confirmButtonColor: '#3085d6',   
              cancelButtonColor: '#d33',   
              confirmButtonText: 'Yes',   
              closeOnConfirm: true }, 
              function(isConfirm) { 
                if(isConfirm === true){
                    alert('it is true');
                } else {
                    return false;
                }
             });
    });

この考え方は単純です。確認が必要なリンクにクラスがあり、確認用のメッセージが data-message 属性に割り当てられています。

多くの場合、[OK] ボタンがクリックされるのを待たずに、自動的に URL にスキップします。

ユーザーにお礼を言う追加のダイアログを表示する例を見てきましたが、この場合は、[OK] をクリックしたときにのみ true を返すようにしています。追加のダイアログを表示しないようにします。

どんなヒントでも大歓迎です

4

1 に答える 1

0

これはあなたの予想される動作だと思います:

$("a.confirm").click(function (e) {
    var _self = this;
    e.preventDefault();
    swal({
        title: 'Are you sure?',
        text: $(this).attr('data-message'),
        type: 'warning',
        showCancelButton: true,
        confirmButtonColor: '#3085d6',
        cancelButtonColor: '#d33',
        confirmButtonText: 'Yes',
        closeOnConfirm: true
    }, function (isConfirm) {    
        if (isConfirm === true) {
            _self.click();
        } 
    });
});
于 2015-08-03T09:08:14.497 に答える