javascript - 如何使用一个提交按钮在一个页面中提交 2 个表单

标签 javascript html

我创建了一个包含两个表单的 php 页面,但我希望两个表单都只有一个提交按钮。表单具有 ids firstformsecondform。我已经尝试过其他脚本,但它们并没有真正起作用。

下面是我的代码:

<script language="javascript">
submitForms = function(){
    document.getElementById("firstform").submit();
    document.getElementById("secondform").submit();
}

</script>

<input type="image" src="images/order-button.png" name="button" value="Submit" onclick="submitForms()"/>

最佳答案

你有几个问题

  1. input type=image 是一个提交按钮,因此您尝试从一个不存在的表单提交内容,很可能与您所在的页面相同

  2. 当你提交form1时,它会替换当前页面,如果你同时提交form2,很可能会干扰form1的提交

这是您可以尝试的(纯 javascript):

<script language="javascript">
function submitForms() {
  document.getElementById("firstform").submit();
  document.getElementById("secondform").submit();
 }
</script>

<form id="firstform" target="iframe1">
</form><iframe name="iframe1" style="display:none"></iframe>
<form id="secondform" target="iframe2">
</form><iframe name="iframe1" style="display:none"></iframe>
<button typ"button" onclick="submitForms()"><img src="images/order-button.png" "/></button>

或者一次对一个表单进行 AJAX(假设已加载 jQuery)

DEMO HERE

$(document).ready(function() {
  $("#subbut").click(function(e) {
    e.preventDefault(); // or make the button type=button
    $.post($("#firstform").attr("action"), $("#firstform").serialize(), function() {
      $.post($("#secondform").attr("action"), $("#secondform").serialize(),
        function() {
          alert('Both forms submitted');
        });
    });
  });
});

更新:如果您希望将两个表单的内容提交给一个操作,只需添加序列号:

$(document).ready(function() {
  $("#subbut").click(function(e) {
    e.preventDefault(); // or make the button type=button
    $.post($("#firstform").attr("action"), $("#firstform").serialize() + $("#secondform").serialize(), function() {
      alert('Both forms submitted');
    });
  });
});

PS:演示中的 PHP 只是回显您发布的内容。服务器上不需要特殊操作。

关于javascript - 如何使用一个提交按钮在一个页面中提交 2 个表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9096515/

相关文章:

javascript - AngularJS UI-Router 具有相同 URL 的多个状态

javascript - 与jquery等高?

javascript - 如何向 d3 可折叠树示例添加缩放功能?

javascript - 当 HTML5 <video> 循环重新启动时在 Javascript 中检测?

javascript - 从网络应用程序中的文本合成语音

html - 在另一个 div 下对齐 div

javascript - Vue.js v-bind 有延迟,表单在值更改之前提交

javascript - 如何在 react-router Route 中从 onChange 调用 dispatch?

html - 在范围销毁上销毁指令/子范围

javascript - 单击选项卡后立即 float 的 HTML 按钮