2016-02-25 3 views
1
swal({title: "Sure ?", text: "Your form will be submitted", confirmButtonText: "Ok", 
showConfirmButton:true, showCancelButton: true, cancelButtonText: "No", type:"warning", closeOnConfirm: false, 
        closeOnCancel: false }, 
         function(isConfirm) { 
                 if (isConfirm) { 
                     swal({ 
                         title: 'Confirm!', 
                         text: 'Successfully Submitted!', 
                         type: 'success' 
                     }, function() { 
             console.log("Inside Function"); 
             $scope.applyleave("ok"); 


            }); 

                } else { 
swal("Cancelled", "Your application not submitted :)", "error"); 
           return false; 
                } 
            });  

код поток следует продолжать только при нажатии кнопки Ok, но он выполняет без выполнения пользователяSweetalert не ждет действий пользователя и происходит с потоком кода

Я подаю форму от HTML к этому JS, но я хочу заблокируйте поле подтверждения и дождитесь действия пользователя и разрешите выполнение кода ниже, только когда пользователь нажимает Ok

ответ

0

К сожалению, это характер обработки событий javascript.

Чтобы добиться эффекта обычного всплывающего окна, оберните вещи, которые необходимо запустить, только когда пользователь ответил в функции, а затем вызовите его в функции isConfirm.

Нормальный Всплывающее:

if (confirm("ORLY?")) { 
    console.log("YO!"); 
} 
else { 
    console.log("AWW!"); 
} 

console.log("KTHXBAI!"); 

swal:

swal({ title: "ORLY?" }, 
    function(isConfirm) { 
     if (confirm("ORLY?")) { 
      console.log("YO!"); 
     } 
     else { 
      console.log("AWW!"); 
     } 

     finally(); 
     // you can also write codes directly here 
    }); 

function finally() { 
    console.log("KTHXBAI!"); 
}