我有一个元素的父页面。该元素弹出窗口的 Onclick 来了。在弹出窗口中有一个文本框和提交按钮。现在我想在单击弹出窗口上的提交按钮时刷新父页面。我有刷新父页面的解决方案:
window.onload = function()
{
window.opener.location.reload();
}
我在弹出的 jsp 页面中添加了这个脚本。所以每当我点击父页面上的元素时,弹出窗口就会出现并且父页面被刷新(想跳过这个),然后我在弹出窗口的文本框中添加一些文本并提交数据,因为它是提交按钮弹出再次重新加载和父页面被刷新(预计会发生)。由于我window.onload
在弹出页面上使用,它会刷新两次,我想跳过第一次刷新。所以我决定在点击提交按钮时执行刷新。
弹出页面JSP代码:
<td align="center">
<html:submit styleId="btn_add" property="submitButton" onclick="formConfirmOff();" value="Add" />
</td>
我试图跳过第一次刷新的另一个解决方案:
document.getElementById("btn_add").onclick = function(){
window.opener.location.reload();
}
但是使用上面的脚本它给了我错误,无法设置属性 onclick 为 null ,所以这可能是因为脚本在 DOM 加载之前被执行。所以我添加了脚本
window.onload = function(){
document.getElementById("btn_add").onclick = function(){
window.opener.location.reload();
}
}
但是,这何时显示带有选项的“确认导航”对话框离开此页面并留在此页面上。可能是什么问题。传递给 onclick 的函数顺序是否重要?我只是想在使用提交按钮在弹出子页面上添加数据时刷新父页面。
编辑:
$(document).ready(function() {
$("#frm_addSpeedData").submit(function(event) {
//event.preventDefault();
$.ajax({
type: "POST", //chose your request type method POST or GET
url: "/webapp/addSpeedDataAction.do", // your struts action url
data: $(this).serialize(),
success: function() {
window.opener.location.reload(); // callback code here
}
})
})
});
有时此代码有效,但有时无效。意味着当弹出窗口打开时,我在弹出窗口上提交数据。然后在成功时刷新父窗口。但我仍然看不到父页面上的更新。可能是什么问题?