我想将输入的值存储到JSON(在提交时)。如果用户再次填写输入,则提交我想将新值添加到JSON,保留前一个。
我使用以下命令将输入值添加到JSON,但我不确定如何将先前的值保存到JSON。
HTML:
<form method="post" name="myForm" id="myForm">
<input type="text" name="element" />
<input type="submit" value="Add" name="submit" />
</form>
<div id="display"></div>
使用Javascript:
$.fn.serializeObject = function()
{
var arrayData = this.serializeArray();
var objectData = {};
$.each(arrayData, function(){
if(objectData[this.name] != null){
if(!objectData[this.name].push){
objectData[this.name] = [objectData[this.name]];
}
objectData[this.name].push(this.value || '');
}
else{
objectData[this.name] = this.value || '';
}
});
return objectData;
};
$(document).ready(function(){
$("#myForm").submit(function(){
$('#display').text(JSON.stringify($("#myForm").serializeObject()));
return false;
});
});
答案 0 :(得分:1)
使用.append()函数代替.text()函数。
答案 1 :(得分:0)
您可以维护一个数组来保存所有这些值
$(document).ready(function(){
var values = [];
$("#myForm").submit(function(){
values.push($("#myForm").serializeObject());
$('#display').text(JSON.stringify(values));
return false;
});
});
答案 2 :(得分:0)
您正在覆盖#display
中的值。
更改此行
$('#display').text(JSON.stringify($("#myForm").serializeObject()));
到
$('#display').text($('#display').text() + JSON.stringify($("#myForm").serializeObject()));