【问题标题】:javascript - submit button only submit last form in functionjavascript - 提交按钮仅提交函数中的最后一个表单
【发布时间】:2018-04-03 20:16:44
【问题描述】:

我有 3 种不同表单的提交按钮。我像这样提交它们

restaurantCreateForm = function(){
    document.getElementById("restaurant-features" ).submit();
    document.getElementById("information_form").submit();
    document.getElementById("restaurant-address").submit();
}

但是,该函数只提交其中的最后一个表单。有谁知道错误是什么?我试过把它们放在一个for循环中并一个一个提交,但它仍然提交最后一个表单。

【问题讨论】:

  • 如果你可以在这里添加你的 DOM,那将有助于调试。

标签: javascript forms submit


【解决方案1】:

每当您提交表单时,浏览器都会向服务器发送一个 post 请求,并呈现其响应。因此当前页面将消失。这就是为什么您只能发送一个表单,因为该页面之后将停止存在。您可以改为使用 AJAX 进行后台请求,或者将这三种形式重构为一个,或一个接一个地重构。

【讨论】:

  • 那么我有没有办法阻止这种情况,或者我必须使用 ajax?
  • @tri 你必须这样做。
【解决方案2】:

乔纳斯的回答涵盖了您的主要问题。此外,如果您的按钮元素在您的表单元素之一内,则默认情况下单击它会提交该表单。您可以通过在按钮的 onClick 侦听器中使用 event.preventDefault() 来防止这种情况发生,或者您可以通过将按钮放置在表单元素之外来避免这种情况。

【讨论】:

    猜你喜欢
    • 2015-06-08
    • 2011-09-05
    • 2014-01-31
    • 2016-01-21
    • 2014-10-08
    • 2011-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多