在第一次不工作的表单上提交,并在所有后续尝试中表现得很奇怪

时间:2016-07-14 12:30:06

标签: javascript iframe onclick overlay onsubmit

我目前在表单上遇到“onsubmit”调用问题。

目标是在叠加层中使用iframe来更新该叠加层后面的另一个iframe。

每当我尝试使用按钮(“onclick”)和此代码更新“background”iframe时:

parent.document.getElementById('frame_login').src=parent.document.getElementById('frame_login').src;

每次都有效。

但如果我尝试在“onsubmit”表单上执行此操作:

它第一次不起作用(“背景”iframe没有更新),但它确实第二次工作,但是,刷新会在第一次给出它应该得到的结果。这是一个例子:

  • 我打开叠加层并登录,叠加层显示我已登录,但“背景”iframe未更改。
  • 我点击叠加层上的退出,叠加层显示我已退出,“背景”iframe显示我已登录。
  • 我使用叠加层再次登录,叠加层会说我已登录,但“背景”iframe现在会说我已退出。

我知道“onsubmit”代码并没有像“onclick”那样完全执行,但到目前为止我无法找到解决方案,有没有办法解决这个问题呢?也许是一种不同的方法?

以下是“背景”iframe的代码:

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td></td>
    <td><iframe src="user.php" width="100%" height="70px" frameborder="0" id="frame_login" name="frame_login"></iframe>
</td>
  </tr>
</table>

以下是叠加iframe的代码:

<?
include('config.php')
?>

<script>
function myFunction() {
parent.document.getElementById('frame_login').src=parent.document.getElementById('frame_login').src;
}
</script>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>

<? 
if($user->data['is_registered'])
{
    //User is already logged in to phpBB

?>
  <form method="post" action="phpBB_logout.php" onSubmit="return myFunction()"/>
    <table width="75%" border="0" align="center" cellpadding="0" cellspacing="0" style="height:25px;"/>
      <tr>
        <td align="center">Welcome</td>
        <td align="center"><? echo $user->data['username'] ?></td>
        <td align="center"><input type="submit" value="Logout"/></td>
      </tr>
    </table>
  </form>
  <?    
}
else
{
?>
  <form method="post" action="phpBB_login.php" onSubmit="return myFunction()"/>
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="height:25px;">
      <tr>
        <td align="center">Username:
          <input type="text" size="20" name="username" /></td>
        <td align="center">Password:
          <input type="password" size="20" name="password" /></td>
        <td align="center"><input type="submit" value="Submit"/></td>
      </tr>
    </table>
  </form>
  <?
}
?>

<input type="button" size="30" name="button" onClick="myFunction()" value="Button"/>

</body>
</html>

请注意,表单上的“onclick”与“onsubmit”的行为相同(我尝试在表单上的提交输入中设置“onclick”:<input type="submit" value="Submit" onClick="myFunction()"/>

感谢您的时间和帮助,非常感谢。

0 个答案:

没有答案