提交表单并重定向不工作

时间:2017-09-30 21:00:12

标签: javascript html forms

编辑:我应该提一下手动提交表格,但是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>

2 个答案:

答案 0 :(得分:2)

您必须使用不同的名称 命名=&#34;提交&#34; 因为所有名称属性都设置为表单上的属性, 因此覆盖默认值&#34;提交&#34;表格上的财产, 和默认的表单方法&#34; submit()&#34;离开了。

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

答案 1 :(得分:0)

在您的代码中window.location.replace("https://www.example.com");行没有意义,因为submit()函数会尝试提交表单并更改页面,然后替换函数将阻止提交表单并重定向页面。通过js执行此操作的正确方法可以是,通过ajax提交表单,并在成功回调Ajax run document.getElementById('myForm').submit()