Javascript 使用jquery或ajax同时保存两个表单?

Javascript 使用jquery或ajax同时保存两个表单?,javascript,jquery,ajax,asp.net-mvc,asp.net-mvc-3,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Mvc 3,我计划保存两个表单,但第一个表单是第二个表单的外键 $("#btnSave").click(function() { $('#workForm').ajaxSubmit({ forceSync: true, error: function(errorDetails) { //Error Handling }, success: function(successData) { $

我计划保存两个表单,但第一个表单是第二个表单的外键

$("#btnSave").click(function() {
    $('#workForm').ajaxSubmit({
        forceSync: true,
        error: function(errorDetails) {
            //Error Handling
        },
        success: function(successData) {
            $('#contForm').submit();
        }
    });
});
这是我尝试使用Javascript保存的内容:

$("#btnSave").click(function (e) {
        e.preventDefault();
        $('#workForm').submit();
        $('#contForm').submit();
    });
但是它在控件中的联系人表单提交时出错,因为在保存作为其外键的联系人表单时,工作表单的ID仍然为空

我如何使用Jquery、Javascript和Ajax处理这个问题

我也尝试过这种方法:

$("#btnSave").click(function (e) {
        e.preventDefault();


        if (Id != 0) {
            $('#workForm').submit();
            $('#contForm').submit();
        } else {
           $('#workForm').submit(); }
    });
但它只在其他地方使用,因为ID为空

我希望有人能在这里帮助我

Worker Address是工作表单Worker Contact是ContForm

我想在它们填充所有文本框时保存它们


您需要使用.ajax发布这两个表单。序列化两个表单中的数据,然后发布到服务器脚本

$("#btnSave").click(function (e) {
  e.preventDefault();
  //Serialize the form data
  var formOne$ = $('#workForm').serialize();
  var formTwo$ = $('#contForm').serialize();

  $.ajax( { url : "YOURURL", type: 'post', data : { formOne : formOne$ , formTwo : formTwo$ }, 
    success : function( responseText ){
        //Forms were submitted
    },
    error : function( e ){
        alert( ' Error : ' + e.statusText );
    }
  });

});

您必须使用ajax,因为

$('#contForm').submit();
将永远不会运行,因为第一次调用将卸载页面:

 $('#workForm').submit();

您可以使用
ajaxSubmit()
提交第一个表单,成功后提交第二个表单

$("#btnSave").click(function() {
    $('#workForm').ajaxSubmit({
        forceSync: true,
        error: function(errorDetails) {
            //Error Handling
        },
        success: function(successData) {
            $('#contForm').submit();
        }
    });
});

你不能一次点击保存两个表单。除非你使用AJAX,为什么不试试AJAX调用,一次发送所有信息,然后一个接一个地保存数据呢?噢,AJAX@ubercooluk您能展示一下吗?您可以将第二个表单中的输入合并到第一个表单中的隐藏输入中,然后发送这些输入。因为您使用的是MVC,您可以使用MVC中的Ajax帮助程序,本文可能会很有趣:先生,谢谢,但我能问一下,在“YOURURL”中我将包含哪些内容吗?谢谢,我想我的回答是对的。YourURL是处理数据的服务器脚本的位置。例如“/process_forms”。您还必须将序列化的表单数据解析为服务器脚本中的数组,以便访问所需的数据。先生,我尝试了此方法,我认为它可以工作,但如何提交表单?谢谢此函数通过ajax提交两个表单中的数据,这意味着浏览器不会离开页面。您可以在success函数中对DOM进行更改,例如,使用一条消息替换表单,该消息告诉用户表单已提交-$(“#formWrapper”).html(“数据已提交”)。“添加”按钮没有功能。我不明白您的意思。单击添加按钮时,将调用
ajaxSubmit()
。(请参见编辑)另外,确保您的
按钮
具有属性
type=“button”
错误为未捕获类型错误:对象[Object Object]没有方法“ajaxSubmit”,您必须包含
jquery.form.js