如果数据已更改,则阻止MaterializeCSS模式关闭

时间:2017-11-30 05:42:12

标签: javascript jquery modal-dialog materialize

如何使用MaterialiseCSS执行此操作?

如果用户更改了模态中的内容并尝试将其关闭(通过单击外部, Esc 按钮或模式上的关闭按钮),我想确认该操作。

模态构造函数的complete选项仅在模态关闭后运行。

这是我抓住用户更改模态数据的方法:

var form_changed = false;

$('.modal').find('input, textarea, checkbox').on('change', function() {
    form_changed = true;
});

1 个答案:

答案 0 :(得分:0)

这似乎不可能开箱即用。

在偷看source code后,我想出了这个:

function addCloseHandler($modal, handler) {
    var modal = $modal[0].M_Modal;
    modal._close = modal.close;
    modal.close = function () { handler(function () { modal._close(); }); };
}

用法:

// $('.modal').modal();

addCloseHandler($('.modal'), function (close) {
    form_changed ? confirm('Confirm?') && close() : close();
});