【问题标题】:Form on submit event not getting triggered [duplicate]提交事件的表单没有被触发[重复]
【发布时间】:2019-12-03 17:39:03
【问题描述】:

我是网络开发的新手,为了学校练习,我正在做一些我想执行表单提交事件的 javascript 的事情。

<head>
  <script>
    function foobar() {
      alert('Form submit event hit!');
    }
  </script>
</head>

<body onload="document.myForm.submit()">
  <form name="login" id="login" action="login.php" method="POST" onsubmit="foobar();">
    <input type="hidden" name="username" .../>
    <input type="hidden" name="password" .../>
    <input type="submit" name="submit" value="submit" />
  </form>
</body>

当我执行此操作时,我看到该表单已成功提交,我在成功登录后看到了输出。但是,我没有看到提交事件的处理程序 Java 脚本被调用或命中。我确定我错过了一些东西。任何帮助表示赞赏。

【问题讨论】:

  • 我从重定向到 login.php/login 表单的 x.html 开始。但是,当单击登录表单“登录”按钮时,即“提交”类型,我无法调用处理程序函数,即使我通过表单的 onsubmit='' 选项指定。
  • onsubmit="foobar(e);"function foobar(e) {...} 添加event 参数。然后在你的函数中使用它。
  • 谢谢。但没有帮助。

标签: javascript html forms eventhandler onsubmit


【解决方案1】:

onsubmit 函数IS 在点击提交按钮后被调用。检查我的 jsfiddle。

https://jsfiddle.net/dthsLey7/11/

<!DOCTYPE html>
<html>

<body onload="document.myForm.submit()">
    <form name="login" id="login" action="login.php" method="POST" onsubmit="foobar();">
        <input type="hidden" name="username" .../>
        <input type="hidden" name="password" .../>
        <input type="submit" name="submit" value="submit"/>
    </form>
</body>

<script>
function foobar()
{
    alert('Form submit event hit!');
}
</script>
</html>

【讨论】:

  • 是的。代码是working just fine for me 和?‍♂️。可能是浏览器相关的问题。你试过隐身模式吗?
  • 如果您无法重现问题,您应该在评论中指出。这不是答案。
  • 奇怪。不为我工作。我在 Firefox 上尝试了私有窗口。
  • @Quentin 在这种情况下,这是必要的。由于 OP 是 Web 开发的新手,我认为他们自己可以看到它会更好。我认为它不值得一票否决。这就是使 stackoverflow 不欢迎开发人员的原因。无论是新手还是老手。
猜你喜欢
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-10-04
  • 2019-10-16
  • 2021-07-07
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
相关资源
最近更新 更多