我正在使用 .load() 函数将 .aspx 页面加载到我的 jQuery UI 对话框中,效果很好。问题是正在加载的页面与对话框打开调用的来源不同,当我尝试从新加载的页面点击“提交”按钮时,找不到“search.aspx”路径因为它正在寻找原始路径。
基本上:
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 在 forms/scripts/ 文件夹中的 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/
目录加载的。真的我的问题是我该如何解决这个问题?我只是因为showModalDialog()
Chrome 37中的新弃用而尝试这样做