2013-06-07 5 views
7

Poniższy kod wyskakuje okno potwierdzające link Usuń użytkownika jest wciśnięty:?Konwersja do potwierdzenia Bootbox

<a href="delete_user.php?id=123" onclick="return confirm('Are you sure?');">Delete user</a> 

W tym przypadku, gdy zostanie naciśnięty przycisk OK linku delete_user.php id = 123 będzie wykonany. Po naciśnięciu przycisku Anuluj nic się nie stanie.

Chciałbym zrobić to samo z Bootbox.

<a class="alert" href="list_users.php?id=123">Delete user</a> 

    <script src="bootbox.min.js"></script> 
     <script> 
     $(document).on("click", ".alert", function(e) { 
      e.preventDefault(); 

     bootbox.confirm("Are you sure?", function(result) { 

      if (result) { 
       // What to do here? 
      } else { 
       // What to do here? 
      }    
     }); 

     }); 
    </script> 

Co zrobić w przypadku, gdy (wynik) i innych instrukcji?

+0

'if (result) document.location.href = this.attr ('href');'. Nie wymaga "innego". –

+0

Kiedy użyłem this.attr ('href'); Otrzymuję TypeError: this.attr nie jest funkcją. Po przejściu na $ (this) .attr ('href'); otrzymuję Undefined. Każdy pomysł? – Oualid

+0

Hm ... co jeśli po prostu próbowałeś 'this.href'? –

Odpowiedz

19

To zadziałało dla mnie. Chwyć href "kliknij" i użyj go, gdy masz "wynik".

<script> 
     $(document).on("click", ".alert", function(e) { 
      var link = $(this).attr("href"); // "get" the intended link in a var 
      e.preventDefault();  
      bootbox.confirm("Are you sure?", function(result) {  
       if (result) { 
        document.location.href = link; // if result, "set" the document location  
       }  
      }); 
     }); 
    </script> 
+0

dziękuję bardzo ... to powinna być akceptowana odpowiedź, uratował mój dzień –

+0

Niesamowite dzięki! Miałeś z tym kłopoty! – user754730

2

Działa to świetnie!

$(".alert").on("click", function (e) { 
    // Init 
    var self = $(this); 
    e.preventDefault(); 

    // Show Message   
    bootbox.confirm("Are you sure?", function (result) { 
     if (result) {     
      self.off("click"); 
      self.click(); 
     } 
    }); 
}); 
+0

Dzięki, działa świetnie –