您可以通过将数据附加到employees
数组中来将数据添加到实际数据结构中,例如
dataobj.employees.push({"firstName":$('input[name=firstn]').val(),
"lastName":$('input[name=lastn]').val() });
当然,这需要首先将 JSON 解析为 dataobj。如果要发送,必须再次序列化GET
。但它可以POST
直接作为数据对象编辑!
你当然也可以从一个空数组开始,像初始化 dataobj
var dataobj={ employee: [] };
在上述更新命令生效之前。
一个很晚的编辑...
以防万一应该有多个名字/姓氏输入字段,那么以下将做一个“更好”的工作(因为它将查看所有字段并仅收集那些至少设置了一个名称的字段):
var dataobj={employees:[]};
function shw(){
$('#out').text(JSON.stringify(dataobj).replace(/{/g,'\n{'));}
$(function(){
$('#clr').click(function(){dataobj.employees=[];shw()});
$('#go').click(function(){
var ln=$('input[name=lastn]').toArray(); // ln: JS-Array of DOM elements
$('input[name=firstn]').each(function(i,fn){ // for each fn DOM-element ...
var f=fn.value,l=ln[i].value; // get values as strings
if (f+l>'') dataobj.employees.push({firstName:f,lastName:l}); // push name object
});shw();})
shw();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="firstn" value="John"><input type="text" name="lastn" value="Doe"><br>
<input type="text" name="firstn" value="Anna"><input type="text" name="lastn" value="Smith"><br>
<input type="text" name="firstn" value="Peter"><input type="text" name="lastn" value="Jones">
<input type="button" id="go" value="append names">
<input type="button" id="clr" value="clear">
<pre id="out"></pre>