【发布时间】:2018-01-24 15:14:13
【问题描述】:
我正在打开引导模式:
$('#myModal').modal({ remote: '/AccountsContact/ModalAssignCustomer?iACCO_KEY=' + iACCO_KEY });
我的问题是我需要从模态中读取一些值。我想这样做,当模式完成加载并显示在 GUI 中时。 (在 modal 显示在 GUI 之前,modal 里面的控件还没有生成)。
我知道这个活动:
$(window).on('hidden.bs.modal', function() {
$('#code').modal('hide');
alert('hidden');
});
但这里的问题是在 GUI 上加载模式之前触发事件 - 因此尚未生成模式中的所有字段,我无法从中读取。
有没有办法在 modal 完全加载到 GUI 中并且 modal 中的所有控件可见后触发事件?
【问题讨论】:
-
我认为出于您的目的,您需要依赖
loaded.bs.modal,它在远程数据加载后触发。但我应该注意;remote在 3.3.0 中贬值并在 v4 中删除。你确定你的项目可以依赖它吗? -
一个可以在这里有所帮助的小解决方法:打开模式时 --> 附加一个隐藏的输入字段、div 或其他任何不存在的类。 (例如
<input class="tmp hidden" />)。然后检查while($('.tmp').length < 1)是否创建了元素。由于 append 它应该作为最后一个元素添加到 DOM --> 因此当具有此类的元素存在时,模式应该被完全加载 -
@RobertC - loaded.bs.modal 解决了我的问题。我想当我们更新引导版本时这会是一个问题,但现在,它已经很好了。 V4 中使用什么代替了loaded.bs.modal?请发表您的评论作为答案,以便我将其标记为解决方案。
标签: jquery twitter-bootstrap bootstrap-modal