我开发了一个带有搜索工具的多字段表单。我使用弹出窗口显示搜索结果,用户可以选择其中一个结果进行编辑并填充父窗口。另外,我需要将jQuery和PHP之间的两个变量传递给页面进行格式化。我已经做到了。我面临的唯一问题是在关闭弹出窗口后提交表单时,它不会唤起其$(document).ready()
和$(window).load()
方法。
我在弹出窗口中使用的代码:
$("#modify").on('click', function () {
var $ele = $('input[name="rad_selected"]:checked');
if ($ele.length) {
var $tds = $ele.closest('tr').find('td');
var id = $tds.eq(2).text();
var requestor = $tds.eq(3).text();
// and so on..
//alert(id);
//alert(requestor);
opener.document.frm_beneficiary.task.value = "modify";
opener.document.frm_beneficiary.role.value = 10;
opener.document.frm_beneficiary.benid2.value = trim(id);
opener.document.frm_beneficiary.searchName2.value = trim(requestor);
self.close();
}
else {
alert("Select a record you want to edit.");
}
});
这会将所有四个值成功传递给表单的隐藏字段。甚至搜索也工作正常。
父窗口上的代码:
function submitForm()
{
with(document.frm_beneficiary)
{
alert("submitform");
action = "frm_ben_entry.php";
submit();
}
}
关闭弹出窗口后调用此submitForm()
函数。
注意:submitForm()
在页面本身中被多次调用,并且在使用时不会弹出$(document).ready()
和$(window).load()
方法。我没有得到我所缺少的东西。
我只是想在重新加载页面时引发这两个jquery方法。感谢。
修改
添加此代码以在弹出窗口关闭后调用submitForm()
函数
window.onunload = function (e) {
opener.submitForm(); //or
//opener.document.getElementById('someid').innerHTML = 'update content of parent window';
};