Jquery 引导模式在GUI中完全加载后触发事件

Jquery 引导模式在GUI中完全加载后触发事件,jquery,twitter-bootstrap,bootstrap-modal,Jquery,Twitter Bootstrap,Bootstrap Modal,我正在以以下方式打开引导模式: $('#myModal').modal({ remote: '/AccountsContact/ModalAssignCustomer?iACCO_KEY=' + iACCO_KEY }); 我的问题是我需要从modal中读取一些值。当modal完成加载并显示在GUI中时,我想这样做。(在模式显示在GUI中之前,尚未生成模式内部的控件) 我知道这次活动: $(window).on('hidden.bs.modal', function() {

我正在以以下方式打开引导模式:

$('#myModal').modal({ remote: '/AccountsContact/ModalAssignCustomer?iACCO_KEY=' + iACCO_KEY });
我的问题是我需要从modal中读取一些值。当modal完成加载并显示在GUI中时,我想这样做。(在模式显示在GUI中之前,尚未生成模式内部的控件)

我知道这次活动:

    $(window).on('hidden.bs.modal', function() { 
    $('#code').modal('hide');
    alert('hidden');
});
但这里的问题是,事件是在modal加载到GUI之前触发的——因此modal中的所有字段都还没有生成,我无法从中读取


在GUI中完全加载modal并且modal中的所有控件都可见后,是否有方法触发事件?

您要查找的事件将是
加载的.bs.modal
,该事件在
远程
数据完全加载后触发

正如我在前面的评论中所指出的,
remote
在3.3.0中被贬值,在4.x版中被完全删除。您只需使用一点jQuery就可以很简单地复制功能,我鼓励您在此探索无数的解决方案。我个人的偏好类似于以下代码:

$('body').on('click', '[data-toggle="modal"]', function(){
  $($(this).data("target") + ' .modal-dialog').removeClass('modal-lg').removeClass('modal-sm').addClass('modal-' + $(this).data("size"));
  $($(this).data("target") + ' .modal-content').load($(this).attr("href"));
});  
在上面的示例中,模态触发器绑定到
body
,因此您可以通过DOM外部生成的元素访问它。您仍然可以使用
数据切换
,并且指定远程URL与定义
href
属性一样简单,尽管这将限制您将
作为触发器(尽管可以轻松修改)

但是,上面的代码所做的第一件事是删除模式上的任何大小调整类,并清除任何预先存在的模式内容,因为它依赖于单个模式对话框来填充


我还想指定应该通过
数据大小
激活哪个大小的模式框,因此上面的代码也反映了这一点。再一次该选项中有很多个人偏好。

请参阅下面的代码,这可能会对您有所帮助

$(文档).ready(函数(){
$(“#myBtn”)。单击(函数(){
$(#myModal”).modal(“show”);
});
$(“#myModal”).on('show.bs.modal',function(){
警报(“模式已完全显示”);
$(this.find('p').text(“这是警报后更改的文本”);
});
});

模态事件-显示为.bs.Modal
开放模态
&时代;
模态头
当模式完全显示时,会发生显示.bs.modal事件


我认为出于您的目的,您应该依赖于加载远程数据后触发的
加载的.bs.modal
。但我应该注意到<代码>远程
在3.3.0中折旧,并在v4中删除。你确定你的项目可以依赖它吗?这里有一个小的解决方法可以帮助你:当打开模式-->时,添加一个隐藏的输入字段、div或任何类,但这个类还不存在。(例如,
)。然后使用
while($('.tmp').length<1)检查是否创建了元素。由于append,应将其作为最后一个元素-->添加到DOM中,因此当具有此类的元素存在时,应完全禁用该模式loaded@RobertC-loaded.bs.modal解决了我的问题。我想当我们更新引导版本时会有问题,但现在,它已经很好了。V4中使用了什么而不是loaded.bs.modal?请将您的评论作为答案发布,以便我将其标记为解决方案。