繁体   English   中英

引导模态问题

[英]Issue with bootstrap modal

我正在从外部url(Ajax)将内容加载到引导模式。 因此,对于我来说,当用户单击链接时,模式应该使用最新数据打开。 但是,当我第一次打开模式时,它正在加载内容。 但是关闭并重新打开后,它仅显示以前的内容。 第二次它不与外部URL通信。 因此,为此,我用bootstrap.js中的这一行代码替换了1206行(在版本3.3.5中进行了尝试)。

//if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
New Line
if (!data || options.refresh) $this.data('modal', (data = new Modal(this, options)))

这很好,当我打开和关闭模式并再次打开时,它总是通过外部URL来获取内容。 现在的问题是,在该模式下,我有一些带有一些常规验证的文本字段。 为此,我使用了引导箱。 现在,当everfield字段为空时,bootbox.alert()会触发, but when I click on Ok button it is not closing 并且从modal提交数据后,modal也不会关闭。 甚至我在Ajax成功响应jQuery('#listmodal_popup').modal('hide');也使用过此方法jQuery('#listmodal_popup').modal('hide');

但是,当我从bootstrap.js注释此行并取消注释上一行时,在提交并关闭bootbox.alert之后关闭模式可以正常工作。

if (!data || options.refresh) $this.data('modal', (data = new Modal(this, options)))

那么如何解决这个问题呢? 任何帮助将不胜感激。

更改框架的代码绝不是一个好主意-一年后,您将进行更新,而您会忘记此事,一切都会开始崩溃。 我知道,情况并非如此,但供将来参考:)

准备好DOM之后,将其添加为第一件事

$.ajaxSetup({ cache: false })

从现在开始,这将禁用所有通过jQuery完成的AJAX请求的缓存。 如果这是一个问题,则应仅在打开模式并将其启用后才禁用缓存。

这是我找到的修复程序。

jQuery('body').on('hidden.bs.modal', '.modal', function () {
  jQuery(this).removeData('bs.modal');
});

这对我来说是有效的,每当我单击链接时,它都在与外部URL通信并获取最新数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM