2013-06-07 12 views
7

Il codice seguente apre una finestra di conferma quando si preme il collegamento Elimina utente:?Convertire a Bootbox conferma

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

In questo caso quando il pulsante OK viene premuto il delete_user.php collegamento id = 123 sarà eseguito. Quando viene premuto il pulsante Annulla, non si verificherà nulla.

Mi piacerebbe fare la stessa cosa con 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> 

Cosa fare sotto se (risultato) e altre istruzioni?

+0

'if (risultato) document.location.href = this.attr ('href');'. No 'else' richiesto. –

+0

Quando ho usato this.attr ('href'); Ottengo TypeError: this.attr non è una funzione. Quando cambio in $ (this) .attr ('href'); Prendo undefined. Qualche idea? – Oualid

+0

Hm ... cosa succede se hai appena provato 'this.href'? –

risposta

19

Questo ha funzionato per me. Prendi il "click" href e usalo quando hai "risultato".

<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

grazie mille ... questa risposta dovrebbe essere accettata, mi ha salvato la giornata –

+0

Grazie di cuore! Ho avuto problemi con questo! – user754730

2

Questo funziona benissimo!

$(".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

Grazie, Funziona alla grande –