2012-05-11 3 views
13

К сожалению, загрузочный бокс doc (http://paynedigital.com/2011/11/bootbox-js-alert-confirm-dialogs-for-twitter-bootstrap) не учит, как вызвать диалог подтверждения. Как и в окне документа всегда появляется, когда страница загружается, что не так, должно появляться при вызове, нажимая кнопку удаления. Это код, который безуспешно пытался.Проблемы с Bootbox Confirm Dialog

// 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 -решение:

$(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); 
     } 
    }); 
});  
}); 

Теперь удаление работает, когда я нажимаю на "да". Я попросил разработчиков плагина разместить полный образец в документе, поэтому пользователям не нужно создавать сообщения о том, как удалить объект при нажатии «да». С уважением.

+0

смех смех - да, что, похоже, как-то, что разработчики будут нуждаться знания. –

ответ

6

Вы можете проверить источник на ссылку «Подтвердить» в разделе «Basic Usage» на этой странице: http://bootboxjs.com/

Вот отрывок:

$("a.confirm").click(function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are you sure?", function(confirmed) { 
     console.log("Confirmed: "+confirmed); 
    }); 
}); 

Предполагая, что JQuery доступен в пользовательском интерфейсе вы «Я работаю, я бы не использовал атрибут onClick в ваших якорных тегах. Только мои два цента.

+0

Хорошо, спасибо за ответ! Теперь появляется окно, но когда я нажимаю «да», ничего не происходит, исключение не происходит. С уважением. – LinuxMan

+0

Возможно, вы захотите проверить консоль JS, чтобы узнать, есть ли у вас ошибка. Не видя кода, над которым вы работаете, трудно сказать, что вызывает проблему. Не могли бы вы бросить его в JSFiddle? – jstam

+1

Код был опубликован, его не нужно публиковать в jsfiddle, так как у меня есть только этот код для отображения. И там у меня нет объекта для удаления. Что происходит просто, я нажимаю «да», и объект не удаляется, несмотря на то, что он отображается в firebug «deleted: true». В firebug не появляется сообщение об ошибке, просто не удаляется объект. С уважением. – LinuxMan

0
$(document).on("click", ".confirm-modal", function(e) { 
    e.preventDefault(); 
    bootbox.confirm("Are You sure?", function(result) { 
     if(result) { 
      top.location.href = e.target.href; 
     } 
    }); 
}); 
+2

Для такого позднего ответа вы должны добавить объяснения. – manuell

3

я нуждался в том, что слишком, но я изменил немного кое-что ... Посмотрите ...

Добавьте эту функцию в свою глобальную функцию «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> 

Итак ... Таким образом, вы можете иметь ар ersonalized question .. Это гораздо более интуитивно понятен для ваших пользователей ...

Нравится ли вам?

См демо: jsfiddle