编辑:我应该提到的形式手动提交罚款,但与javascript似乎什么都没有发生

我正在尝试获取一种表单,以便在页面加载时自动提交,然后重定向用户。原因是这是PHP页面的一部分,数据需要进入我的数据库,然后还要将变量POST到第三方SMS平台,然后返回到用户仪表板。

我的表格如下所示:

<html>
   <form action="https://www.example.com" id="myForm" method ="POST">
      <input type="hidden" name="apiKey" value="withheld">
      <input type="hidden" name="message" value="<?php echo $club_name ?> have requested you to play for them this weekend. Please login to your account to see more information and accept.">
       <input type="hidden" name="to" value="<?php echo $to ?>">
       <input type="hidden" name="from" value="withheld">
       <input type="submit" name="submit" id="submit" value="Submit">
   </form>
</html>


这似乎工作正常,所以我认为Javascript不正确是:

<script>
document.getElementById('myForm').submit();
    window.location.replace("https://www.example.com");
</script>

最佳答案

您必须使用与以下名称不同的名称
name =“提交”
因为所有名称属性都被设置为表单上的属性,
因此会覆盖表单上的默认“ submit”属性,
并且默认的表单方法“ submit()”消失了。

https://developer.mozilla.org/de/docs/Web/API/HTMLFormElement
“已命名的输入将作为属性添加到其所有者表单实例,并且如果它们共享相同的名称,则可以覆盖本机属性(例如,具有名为action的输入的表单将具有其action属性,而不是表单的action HTML属性,而返回该输入)。 ”

10-05 20:49
查看更多