jqueryajax在两个表单之间传递数据

jqueryajax在两个表单之间传递数据,jquery,html,ajax,forms,Jquery,Html,Ajax,Forms,我有一个带有ajax填充的自动完成字段的页面,如果需要额外添加自动完成字段,根据用户选择在('mainForm')上添加新内容,我将弹出一个模式表单('subForm'),在其中输入新数据,在服务器上使用经典asp通过ajax post处理,然后我希望传递生成的数据(在数据库插入后返回的两个字段,locId和locName)返回原始表单 原始格式 <form method="post" action="default.asp" name="mainForm" id="mainForm"&g

我有一个带有ajax填充的自动完成字段的页面,如果需要额外添加自动完成字段,根据用户选择在('mainForm')上添加新内容,我将弹出一个模式表单('subForm'),在其中输入新数据,在服务器上使用经典asp通过ajax post处理,然后我希望传递生成的数据(在数据库插入后返回的两个字段,locId和locName)返回原始表单

原始格式

<form method="post" action="default.asp" name="mainForm" id="mainForm">

 .... rest of form ....

  <label for="locName">Location (autocomplete): </label>
  <input type="text" name="locName" id="locName" value="locName"/>
  <label for="locId">Location Id: </label>
  <input type="text" name="locId" id="locId" value="locId"/>
  <input type="submit" name="sub" id="sub"  value="sub"/>
</form>
<form name="subForm" id="subForm" action="default.asp">
  <label for="nme">Name</label><input type="text" name="nme" id="nme" />
  <label for="pcd">Postcode</label><input type="text" name="pcd" id="pcd" />
  <input type="submit" name="sub2" id="sub2"  value="sub2"/>
</form>
提前谢谢


Steve

假设“response”是服务器返回的JSON格式字符串(例如,
“{locName:'Groenland',locId:'212'}”
):


什么是响应?JSON还是纯文本?我可以提供其中一个-哪一个最容易传递回表单?JSON,请查看下面lauhub的答案。我相信在经典ASP中,您必须转换字符串(如下所述)返回到jQuery后,返回到JSON对象。否则,它将被视为字符串。您可以更改表单ASP页面的doctype/content类型。如果有人想知道,请感谢Michael-Response.ContentType=“application/JSON”
$(document).ready(function() {
  var $form = $('#subForm');     
  $form.submit( function() {
    $.ajax({ 
      beforeSend:function(response){$("#locName").val("loading...");},
      cache:false,
      data: $(this).serialize(), 
      type: $(this).attr('method'), 
      url: $(this).attr('action'),

// this is the bit I need help with  

      success:function(response){
        $("#locName").val(response); // populate original form
        $("#locId").val(response); // populate original form
      },
// ---------------------------------------------
      error:function(){alert("error")},
      complete:function(){alert("done");}
    });           
  return false;  
});
});
success:function(response){
    //You need to first parse JSON data:
    var data = jQuery.parseJSON(response);

    //Then fill the original form
    $("#locName").val(data.locName); // populate original form
    $("#locId").val(data.locId); // populate original form
}