提交表格,重新加载父母,并关闭孩子

时间:2013-08-19 19:12:22

标签: javascript cross-browser

我遇到跨IE问题,不一定是跨浏览器问题。

我正在尝试打开一个子窗口,用户可以在其中提交表单。提交时,应调用PHP脚本来加载子表单数据。然后孩子应该重新加载父窗口,其中包含子窗体中添加的一些内容,并关闭子窗体...

除了IE之外,用户不会使用任何其他浏览器,但是不同的版本(我更愿意使其完全兼容,但我会解决不同的IE)。我在IE10中遇到了这个问题,但我无法在IE8中使用它。有些用户必须使用IE8(由于其他软件无法在7或8上运行,因此卡在XP上。)

我试过这个:

<form name="parts" id="parts" action="tableaddrow_nw.php" method="get" onsubmit="window.opener.document.location.href='q.php?q=<?php echo $q; ?>&memberid=<?php echo $memberid; ?>'; self.close();">

我试过这个:

<form name="parts" id="parts" action="tableaddrow_nw.php" method="get">
<input type="button" value="Save & Close Window" class="submit" onclick="validateRow(this.form);"

validateRow(this.form);函数是:

function validateRow(frm)
{
  frm.submit();
  window.opener.document.location.href='q.php?q=<?php echo $q; ?>&memberid=<?php echo $memberid; ?>';
  this.window.close();
}

我也推翻了提交和重新加载,我在发帖时看到了,但它对我不起作用。

PHP代码工作得很好,因为它在IE10版本中很好用。基本上,它删除以前的条目,然后读取发送的数组,并检查以验证索引是否有效,并再次加载数组数据。

如果我不关闭窗口,它在两个版本中都可以正常工作。所以我想我希望有人可以帮助我关闭提交的窗口,但也许等待足够长的时间来验证提交是否成功。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

提交表单后,调用脚本功能。

<script type="text/javascript">
  function closeChildPopup()
  {

    opener.location.reload(); 
    window.close(); 
  }
</script>

答案 1 :(得分:0)

我设法在我的一个AHA中解决了这个问题!时刻。

我只是用

if ( $.browser.msie ) {
    if ( $.browser.version == "10.0" ) {
        this.window.close();
    }
}

告诉IE10关闭窗口。

在脚本中,表单操作(tableaddrow_nw.php)实际上吐出了输入数据库的数据,我添加了一个“关闭窗口”按钮。

<form method="post">
    <input type="button" value="Close Window" onclick="window.close()" />
</form>

因此,如果它是IE8,窗口不会关闭,但它们会关闭一个按钮。在1E10中,窗口刚刚关闭。对于IE8用户来说,这又是一次点击,但是直到工业工具的主要供应商(我不会提到名称)将他们的软件变得更加现代化之前,我无能为力。

答案 2 :(得分:0)

尝试将JavaScript代码放在弹出页面(提交表单)的标题中,如下所示:

<script type="text/javascript">
window.onunload = function(){
  window.opener.location.reload();
  window.close(); 
};
</script>