我怎样才能保存两种不同的形式同时使用Jquery或Javascript?

时间:2013-07-19 01:33:19

标签: c# javascript jquery asp.net-mvc asp.net-mvc-3

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

这是我尝试使用Javascript保存此内容

$("#btnSave").click(function (e) {
        e.preventDefault();
        $('#workForm').submit();
        $('#contForm').submit();
    });

但它在控件中的联系表单提交时出错,因为在保存作为其外键的联系表单时,工作表的ID仍然为空

我如何使用Jquery和Javascript处理它?<​​/ p>

我也试过这个方法

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


        if (Id != 0) {
            $('#workForm').submit();
            $('#contForm').submit();
        } else {
           $('#workForm').submit(); }
    });

但它仅在Else,因为ID为空

我希望有人可以帮助我

谢谢:D 工作者地址是WorkForm 工人联系人是ContForm

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

enter image description here

2 个答案:

答案 0 :(得分:1)

以下是我的AJAX建议如何运作:

$.post("/form1.php", {
  //form data here
}, function (data) { // get data to use in the second form
    $.post("/form2.php", {
      //form data here
    }, function () {

    });
});

但是,我同意其他所有人只使用1表格。

您最初是如何提交表单的?

答案 1 :(得分:0)

你当然需要使用AJAX。每次调用ajax都会指定响应处理函数。当第一个AJAX调用的响应返回时,您可以使用AJAX启动第二个表单的保存。

现在,你在AJAX调用中真正做了什么。您应该使用form2js或jquery serialize功能等插件将表单内容序列化为JSON。然后使用$ .ajax进行POST(注意:这与常规表单提交不同)。在成功响应中,您需要确保服务器返回使用AJAX提交第二个表单所需的必要信息。在获得响应时,进行必要的UI更新,收集第二次表单提交所需的信息,序列化它,然后使用另一个$ .ajax再次发送。

以下是粗略的代码结构。

function submitForms() {
   var form1Contents = serialize_form1_to_json;
   $.ajax({ 
       url: form1_action_url,
       type: "POST",
       data: form1Contents
   }).done(function (data) {
      //data is the response of first form save from server. should contain the id you need for form 2
      var form2Contents = serialize_form2_to_json;
      set_id and any other details from form1 _on_form2
      $.ajax({
       url: form2_action_url,
       type: "POST",
       data: form2Contents
      }).done(function(){
         alert('both forms saved.');
      });
   });
}

注意:要提交的表单必须与包含表单的页面相同。由于安全问题,AJAX不允许跨域。