2013-06-07 3 views
7

Следующий код всплывает окно подтверждения при нажатии на ссылку Удалить пользователя:Преобразовать в Bootbox подтверждения

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

В этом случае, когда кнопка OK нажата ссылка delete_user.php ID = 123 будет казнены. При нажатии кнопки «Отмена» ничего не произойдет.

Я хотел был бы сделать то же самое с 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> 

Что делать в случае (результата) и других утверждений?

+0

'if (result) document.location.href = this.attr ('href');'. Не требуется 'else'. –

+0

Когда я использовал this.attr ('href'); Я получаю TypeError: this.attr не является функцией. Когда я перехожу на $ (this) .attr ('href'); я получаю Undefined. Любая идея? – Oualid

+0

Хм ... что, если вы просто попробовали 'this.href'? –

ответ

19

Это сработало для меня. Возьмите «click» href и используйте его, когда у вас есть «результат».

<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

большое спасибо ... это должно быть принято ответ, оно спасло мой день –

+0

Удивительное спасибо! У вас были проблемы с этим! – user754730

2

Это отлично работает!

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

Спасибо, работает отлично –