我正在使用.load()函数将.aspx页面加载到我的jQuery UI对话框中,该工作正常。问题是,被加载的页面与对话框打开的调用来自不同的目录,当我尝试从新加载的页面点击“提交”按钮时,它无法找到'search.aspx'路径因为它正在寻找原始路径。UI对话框中的jQuery加载函数中的相对路径
基本上是:
ucEasyFill.ascx包含DIV声明,并打开模式弹出的链接。这位于forms/UserControls /文件夹中;
<div id="modalSearchWindow" style="display:none;" class="MODAL_SEARCH_WINDOW"></div>
<img id="imgClearClient" src="images\clear.png" class="efIMG" />Clear </a><a href="#" id="lnkFindClient" name="lnkFindClient" onclick="javascript: MODAL_SEARCH_WINDOW.dialog('open');"><img id="imgSearchMag" src="/applications/images/search_mag.gif" class="efIMG" />Find</a>
ucEasyFill.js包含表格/脚本/文件夹中的document.ready函数中的对话框声明;
MODAL_SEARCH_WINDOW = $("#modalSearchWindow").load('EasyFill/Search.aspx').dialog({
position: "center",
autoOpen: false,
resizable: false,
autoResize: true,
draggable: true,
modal: true,
width: 580,
height: 450,
dialogClass: "MODAL_SEARCH_WINDOW",
closeOnEscape: true,
open: function (event, ui) {
$('.MODAL_SEARCH_WINDOW .ui-dialog-titlebar').each(function() {
$(this).css("display", "none");
});
}
});
当“搜索”的点击forms/EasyFill/Search.aspx
页我收到404错误的;
POST http://localhost/applications/forms/Search.aspx 404 (Not Found)
,因为对话正在从/forms/
目录加载,而不是从forms/easyfill/
目录这对我来说很有意义。真的,我的问题是我如何解决这个问题?我只是试图做到这一点,因为在Chrome 37中新的弃用showModalDialog()
'/ EasyFill/Search.aspx'是一个绝对路径,而不是相对路径。它应该从'http:// localhost/EasyFill/Search.aspx'加载。你有复制错误吗? – Barmar 2014-09-04 17:11:21
如果你有'EasyFill/Search.aspx',它应该查找'forms/EasyFill/Search.aspx'。相对路径相对于制作引用的页面的目录进行解释。所以这应该工作。 – Barmar 2014-09-04 17:14:39
如果你有'.load('Search.aspx')',那么你得到的错误只会发生。 – Barmar 2014-09-04 17:15:30