【发布时间】:2019-02-04 16:37:22
【问题描述】:
我在一个页面上有几个不同的模态,它们都可以正常工作,但是如果用户在模态中的表单字段上进行了一些输入,然后不小心点击了模态之外(这会关闭它),它们就会松动他们的变化,因为如果用户点击他们打开模式的同一个按钮,他们输入的数据将被从数据库中提取的数据覆盖。
所以我想要一个“重新打开上次关闭的模式”的功能,它只是在它最后使用的状态下再次显示模式 - 里面有任何数据。
基本上就像 Ctrl-Z 用于意外关闭模式。
如果您知道模态框的 ID,那真的很简单。如:
$('#myModal1').modal('show'); });
但是因为我在一个页面上有几个不同的模态可用,而且我不想有一堆“恢复”按钮,所以我需要能够检测到最后一个关闭的模态的 ID。
如果没有更简单的方法,我可以在每次关闭模式时捕获 ID,然后在需要重新打开模式而不更改其数据时使用该 ID。像这样的:
$('#myModal1').on('hidden.bs.modal', function (e) {
var LastModal = '#myModal1';
})
$('#myModal2').on('hidden.bs.modal', function (e) {
var LastModal = '#myModal2';
})
function reOpen() {
$(LastModal).modal('show');
}
但我猜有一种更简单的方法,并且不需要我在 JS/jQuery 中声明我所有的模态 ID。有什么想法吗?
【问题讨论】:
-
您可以为页面上的每个模态添加一个通用 CSS 类,然后只有一个通用事件侦听器来捕获 ID,例如
$('.modal-class').on(hidden.bs.modal', (e) => var LastModal = $(e.target).attr('id'))
标签: javascript twitter-bootstrap modal-dialog window restore