как закрыть сладкое оповещение, нажав клавишу esc?

Я использую Sweet Alert 2, и у меня есть что-то вроде этого.

свал

а вот его реализация

$('#btn_undispense').click(function() {
        swal({
            title: "Are you want to unDispense this claim?",
            //text: 'you want to unDispense this claim ?',
            type: "warning",
            showCancelButton: true,
            confirmButtonClass: 'btn-warning',
            cancelButtonClass: 'btn-default',
            confirmButtonText: "UnDispense",
            cancelButtonText: "UnDispense & Delete",
            closeOnConfirm: true,
            closeOnCancel: true,
            allowEscapeKey: true,
            allowOutsideClick: true
        }, function(isConfirm) {
            var url = '@Url.Action("UnDispenseAndDelete", "ClaimData")';
            $.ajax({
                type: 'GET',
                url: url,
                data: {
                    par:'@Model.ParKey',
                    par2: '@Model.ParKey2',
                    isUnDispensedOnly:isConfirm
                },
                success: function(res) {
                    debugger;
                    //1 undispensedOnly   //2 undispensed and delete
                    if (res === "1") {
                        showSuccessToast("Claim undispensed successfully");
                        if (@((int)Model.UserSession.UserRoleEnum) === 3) {

                            var url1 = "/Pharmacist/ClaimData/OpenClaim?par=" + '@Model.ParKey' + "&par2=" + '@Model.ParKey2' + "&par7=" + '@Model.ParKey7' + "&isClaimSearchPayer="+true ;
                            window.location.href = url1;
                        } else {
                            var url = "/Pharmacist/ClaimData/OpenClaim?par=" + '@Model.ParKey' + "&par2=" + '@Model.ParKey2' + "&par7=" + '@Model.ParKey7' + "";
                            window.location.href = url;
                        }
                    }else if(res === "2"){
                        var url1 = '@Url.Action("ClaimSearch", "Batch", new {area="Pharmacist"})';
                        window.location.href = url1;
                    }
                    else {
                        //  showErrorToast("Error");
                        showPopupModal("Errors", '@Url.Action("PopupError")');
                    }
                },
                failure: function () {
                    showErrorToast("Internal Server Error");
                }
            });

        });
    });

Я хочу закрыть это сладкое оповещение, нажав клавишу ESC, не выполняя одну из двух опций, поэтому я добавил опции allowEscapeKey и allowOutsideClick, опция allowOutsideClick работает правильно, проблема связана с клавишей ESC, всякий раз, когда я нажимаю ESC, она вызывает кнопку отмены, которая является UnDispense & Delete, и я просто хочу закрыть swal, не выполняя ни того, ни другого.


person Halawa    schedule 16.12.2017    source источник
comment
SweetAlert2 по умолчанию закроет ESC, что вы пытаетесь сделать?   -  person Pedram    schedule 16.12.2017
comment
Я считаю, что это не так, я думаю, что по умолчанию кнопка отмены на ESC срабатывает.   -  person Halawa    schedule 16.12.2017
comment
См. эту страницу. Найдите CTRL+F =› A message with auto close timer на этой странице, нажмите try me при открытии модального окна, попробуйте чтобы быстро нажать ESC, вы увидите его рядом с ESC.. и нет кнопки для запуска. | ИЛИ вы можете попробовать Dynamic queue example   -  person Pedram    schedule 16.12.2017


Ответы (2)


это может помочь

  $('body').keypress(function(e){ 
  alert(e.which); 
  if(e.which == 27){
  swal.close();
   } 
  });
person NanThiyagan    schedule 16.12.2017

Попробуй это

 $(document).on('keypress', function (e) {
            if (e.which == 27) {
                swal.closeModal();
            }
        });
person Kamran    schedule 08.01.2019