Проблемы с диалоговым окном Bootbox Confirm
К сожалению, doc Bootbox (http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap) не учит, как вызвать диалог подтверждения. Как и в окне документа всегда появляется, когда страница загружается, что не так, должно появляться при вызове, нажимая кнопку удаления.
Это код, который безуспешно пытался.
// show "false" does not work, the confirm window is showing when page is loaded.
$(function () {
bootbox.confirm("Confirm delete?", "No", "Yes", function(result) {
show: false
});
});
// need show the confirm window when the user click in a button, how to call the confirm window?
<td><a class="icon-trash" onclick="bootbox.confirm();" href="{% url 'del_setor' setor.id %}" title="Delete"></a></td>
Как установить этот загрузочный бокс, только когда нажата кнопка удаления?
Спасибо!
EDIT -SOLUTION:
$(function () {
$("a#confirm").click(function(e) {
e.preventDefault();
var location = $(this).attr('href');
bootbox.confirm("Confirm exclusion?", "No", "Yes", function(confirmed) {
if(confirmed) {
window.location.replace(location);
}
});
});
});
Теперь удаление происходит, когда я нажимаю "да".
Я попросил разработчиков плагина разместить полный образец в документе, поэтому пользователям не нужно создавать сообщения о том, как удалить объект при нажатии "да".
С наилучшими пожеланиями.
Ответы
Ответ 1
Вы можете проверить источник на ссылке "Подтвердить" в разделе "Основное использование" на этой странице: http://bootboxjs.com/
Вот фрагмент:
$("a.confirm").click(function(e) {
e.preventDefault();
bootbox.confirm("Are you sure?", function(confirmed) {
console.log("Confirmed: "+confirmed);
});
});
Предполагая, что jQuery доступен в пользовательском интерфейсе, над которым вы работаете, я бы не использовал атрибут onClick
в ваших якорных тегах. Только мои два цента.
Ответ 2
Мне тоже это нужно, но я изменил немного вещей... Взгляните...
Добавьте эту функцию в свою глобальную функцию "jQuery Ready":
$(document).on("click", "[data-toggle=\"confirm\"]", function (e) {
e.preventDefault();
var lHref = $(this).attr('href');
var lText = this.attributes.getNamedItem("data-title") ? this.attributes.getNamedItem("data-title").value : "Are you sure?"; // If data-title is not set use default text
bootbox.confirm(lText, function (confirmed) {
if (confirmed) {
//window.location.replace(lHref); // similar behavior as an HTTP redirect (DOESN'T increment browser history)
window.location.href = lHref; // similar behavior as clicking on a link (Increments browser history)
}
});
});
И просто добавьте некоторые "атрибуты data- *" к вашей кнопке или ссылке вроде этого:
<a class="btn btn-xs btn-default" data-toggle="confirm" data-title="Do you really want to delete the record 123?" href="/Controller/Delete/123"><span class="fa fa-remove"></span> </a>
Итак... Таким образом, у вас может быть индивидуальный вопрос.. Это гораздо более интуитивно понятно для ваших пользователей...
Вам понравилось?!
Смотрите демонстрацию: jsfiddle
Ответ 3
$(document).on("click", ".confirm-modal", function(e) {
e.preventDefault();
bootbox.confirm("Are You sure?", function(result) {
if(result) {
top.location.href = e.target.href;
}
});
});