如何在jQuery UI对话框中加载页面
我试图在jQuery对话框中加载另一个页面。 我已经看了很多文章(包括下面的文章)。 似乎接受的技术是:
$(function () { $(document).ready(function () { var d1= $('#dialog-import').dialog({ resizeable: false, height: 600, modal: true, autoOpen: false, buttons: { 'My button1': function () { $(this).dialog('close'); }, Cancel: function () { $(this).dialog('close'); } } }); d1.load('/DataSets/ImportSpreadsheet/91D55CAC-6C2C-46EE-8730-0DBFE26D1D92').dialog('open'); }); });
这将打开对话框,包括完整的内容和我的两个对话框按钮,但是,两个对话框按钮不起作用(我无法点击它们)。
代码的其他替代方案,例如:
$('#dialog-import').load('/DataSets/ImportSpreadsheet/' + a, function () { $('#dialog-import').dialog('open'); });
在Google Developer Console中导致此错误:
Uncaught TypeError: Object [object Object] has no method 'dialog'
我一定是想念一些愚蠢的东西。 但是,我一直在寻找它,没有任何运气。
谢谢。
这就是我想要做的,尝试了他们的建议,没有运气:
jQuery模式对话框onclick
jQuery中的对话框
如何使用jquery ui对话框加载页面
在对话框中加载另一页
Jquery对话框打开另一个页面
原来,问题是我试图加载一个包含header,body,html元素的完整页面。 jQuery不喜欢那样。
我发现了两种可能的解决方
-
使用C#MVC局部视图。 确保部分视图不包含header,html等元素。 使用它原始问题中的代码可以正常工作。
-
使用iFrame元素,并加载要查找的页面以更改src属性,如下面的代码所示。
$(’#selector’)。click(function(){
$( ‘#对话框导入’)ATTR( ‘src’ 中, ‘/数据集/ ImportSpreadsheet / …’)。 $( ‘#对话框导入’)对话框( ‘开放’)。
});
尽管如此,我很困惑的是这么多人说他们不必担心标题/正文标记,就像这个post隐含地说: ASP.NET Mvc jquery ui对话框作为视图还是部分视图?
我会继续研究,但是有同样问题的人可能会觉得这很有用。