我正在尝试阻止bootstrap-3模式在模态内部对表单进行更改时关闭而不发出警告。但是,当我听到模态触发的事件并返回false时,它将阻止模态永远关闭。这是我的代码:
$(function() {
$('body').live('shown.bs.modal', '#quickbutton-create', function () {
$(this).find('#quickbutton-create form').monitor();
});
$('body').live('hide.bs.modal', '#quickbutton-create', function () {
if ($(this).find('#quickbutton-create form').monitor('has_changed')) {
if (!confirm('Are you sure?')) {
return false;
}
}
});
});
所以总之,在这种情况下;如何阻止模态只关闭一次。
答案 0 :(得分:7)
好的所以我想出来了,而不是返回false我需要event.preventDefault()
jsfiddle here:http://jsfiddle.net/ACYBv/1/
$(function() {
$('.modal').on('shown.bs.modal, loaded.bs.modal', function(e) {
// set form state
$(this).data('form-data', $(this).find('form').serialize());
});
$('.modal').on('hide.bs.modal', function(e) {
// check if the form data was changed since the modal was openened
if($(this).data('form-data') != $(this).find('form').serialize()) {
if(!confirm('you sure??')) {
e.preventDefault();
}
}
});
});