【问题标题】:Form firing javascript onsubmit but not passing values from form POST表单触发 javascript onsubmit 但不从表单 POST 传递值
【发布时间】:2017-05-11 22:30:09
【问题描述】:

我使用表单操作 POST 提交表单,使用 javascript onsubmit 将用户重定向到感谢页面。 POST 在添加 javascript 代码之前工作,一旦实现,表单将正确重定向,但不再调用 POST 页面来处理值。

<form action="https://www.website.com/leads.php" method="post" id="bm-form" class="form-style" novalidate="novalidate">
    <!--form fields here-->
<div>
    <input class="btn theme-btn" value="Process" type="submit">
</div>
</form>

Javascript

<script type="text/javascript">
window.onload=function() {
  document.getElementById("bm-form").onsubmit=function() {
    window.location.replace("https://www.website.com/thank-you.html");
    return false;
  }
}
</script>

【问题讨论】:

  • 如果你想在提交表单数据的同时保持客户端在页面上,那么我建议你看看使用 ajax。 ajax 完成后,您可以检查/确认帖子是否成功,然后将用户重定向到另一个页面或显示感谢消息。 w3schools.com/xml/ajax_intro.asp
  • 这是我使用的解决方案,非常感谢!如果您在答案中添加此内容,那么我会将其标记为已接受的答案。

标签: javascript html


【解决方案1】:

您应该从 php 代码 (leads.php) 服务器端而不是 javascript 内部进行重定向。您添加的 javascript 逻辑会覆盖表单提交,并且永远不会完成发布,只是重定向。

【讨论】:

    【解决方案2】:

    JavaScript 正在取消表单提交的正常行为,并告诉浏览器加载不同的页面。

    要重定向到感谢页面,请让https://www.website.com/leads.php 返回302 状态和Location HTTP 响应标头。不涉及 JavaScript。

    【讨论】:

    • 是否可以从上面列出的索引页面完成所有操作?该页面用于处理其他潜在客户,并且不会更改(不是我的决定,但必须遵循它)。
    猜你喜欢
    • 2021-03-10
    • 2012-04-09
    • 2018-01-29
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多