在一个简单模式窗口(iframe)中有一个弹出式法律声明,它的工作方式完全符合我的预期。在iframe中有一个表单,当你提交它时,模态窗口关闭,你继续到你的目的地 - 在这种情况下,是一个“mailto:”链接。
问题是 - 我需要一个单独的“关闭”功能,它不会打开mailto链接,只需关闭模态。目前,提交表格或点击“关闭”链接都会打开“mailto”链接。
到目前为止我得到了什么:
在我的iFrame中处理表单提交:
$('#alertFORM').submit(function() {
window.parent.jQuery.modal.close(true);
});
我的功能处理其他所有事情:
$('.legalnotice').on('click', function (e) {
e.preventDefault();
var src = "email_alert.html";
var mailto = $(this).attr('href');
$.modal('<iframe src="' + src + '" height="400" width="390" style="border:0" id="legalFRAME">', {
closeHTML: "<a href='#'>Close</a>",
closeCLASS: "simplemodal-close",
containerId: "modal",
containerCss: {
backgroundColor: "#f8f8f8",
borderColor: "#f8f8f8",
height: 500,
padding: 0,
width: 400
},
overlayClose: true,
onClose: function (dialog) {
$.modal.close();
window.location.href = mailto;
}
});
}); });
我相信我理解了这个问题 - 表单提交和'close'链接都调用了onClose函数。还没有完全想出要分开这两个,所以只有表单提交打开'mailto'链接。
我尝试更改iFrame中的代码:
$('#alertFORM').submit(function() {
parent.closeModal();
});
...然后回到我上面javascript顶部的父页面上:
function closeModal() {
$("#modal").dialog("close");
}
......但这不起作用。
积极致力于此。建议最受赞赏。
答案 0 :(得分:0)
终于搞定了!在我的iFrame文件中:
$('#alertFORM').submit(function() {
window.showEmail = "true";
window.parent.jQuery.modal.close(true);
});
$( ".modalCloseImg" ).on('click', function (e) {
window.parent.jQuery.modal.close(true);
});
...并返回父页面:
onClose: function (dialog) {
window.redirectEmail = window.legalFRAME.showEmail;
if(window.redirectEmail == "true")
{
window.location.href = mailto;
window.legalFRAME.showEmail = "false";
window.redirectEmail = "false";
}
$.modal.close();
}