Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当窗体发生更改时,防止bootstrap-3模式关闭_Javascript_Jquery_Forms_Modal Dialog_Twitter Bootstrap 3 - Fatal编程技术网

Javascript 当窗体发生更改时,防止bootstrap-3模式关闭

Javascript 当窗体发生更改时,防止bootstrap-3模式关闭,javascript,jquery,forms,modal-dialog,twitter-bootstrap-3,Javascript,Jquery,Forms,Modal Dialog,Twitter Bootstrap 3,我试图阻止bootstrap-3模式在模式中的表单发生更改时在没有警告的情况下关闭。然而,当我听到模态触发的事件并返回false时,它将阻止模态永远关闭。这是我的密码: $(function() { $('body').live('shown.bs.modal', '#quickbutton-create', function () { $(this).find('#quickbutton-create form').monitor(); }); $('

我试图阻止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;
            }
        }
    });
});

简而言之,在这种情况下;如何防止模态仅关闭一次。

好的,我找到了它,我需要返回event.preventDefault()而不是返回false

请点击此处:

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