如何使用一个提交按钮提交三个表单


How to submit three forms with one submit button

我想用一个按钮提交 3 份表格:

<form id="#formEditUsername">
//Code
</form>
<form id="#formEdituseremail">
//Code
</form>
<form id="#new_password_form">
//Code
</from>
<button type="submit" class="btn btn-success" id="btnUpdate">Save</button>

我知道最好的方法可能是 Ajax,但我不确定我会怎么做;为前两个表单创建两个 AJAX 函数,然后在提交第三个表单时调用这些函数?

试试这个

 $(document).ready(function() {
        $("#btnUpdate").click(function() {
            $.post($("#formEditUsername").attr("action"), $("#formEditUsername").serialize(),
              function() {
                $.post($("#formEdituseremail").attr("action"), $("#formEdituseremail").serialize(),
                  function() {
                    $.post($("#new_password_form").attr("action"), $("#new_password_form").serialize(),
                       function() {
                        alert('All forms submitted');
                      });                
                  });
              });
          });
      });

正如@Jari提到的,您可以简单地从前两个表单中收集数据并将它们一起提交。

注意:此 aproach 要求输入name属性在所有三种形式中是唯一

AJAX 调用的简单示例:

var firstFormData = $("#formEditUsername").serialize();
var secondFormData = $("#formEdituseremail").serialize();
var thirdFormData = $("#new_password_form").serialize();
$.post(
    URL,              // target URL of your choice 
    firstFormData + secondFormData + thirdFormData
);
<form id="#formEditUsername" class="frmToSubmit" method="post">
//Code
</form>
<form id="#formEdituseremail" class="frmToSubmit" method="post">
//Code
<form>
<form id="#new_password_form" class="frmToSubmit" method="post">
//Code
</from>
<script type="text/javascript">
$(document).ready(function() {
    $("#btnUpdate").click(function() {
        $(".frmToSubmit").submit();
    });
});
</script>