如何将以前的值保存到JSON?

时间:2012-05-30 16:49:16

标签: javascript jquery json input

我想将输入的值存储到JSON(在提交时)。如果用户再次填写输入,则提交我想将新值添加到JSON,保留前一个。

我使用以下命令将输入​​值添加到JSON,但我不确定如何将先前的值保存到JSON。

http://jsfiddle.net/ABE4T/

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;
    });
});

3 个答案:

答案 0 :(得分:1)

使用.append()函数代替.text()函数。

DEMO fiddle

答案 1 :(得分:0)

您可以维护一个数组来保存所有这些值

$(document).ready(function(){
    var values = [];

    $("#myForm").submit(function(){
        values.push($("#myForm").serializeObject());
        $('#display').text(JSON.stringify(values));    
        return false;
    });
});

Working Fiddle

答案 2 :(得分:0)

您正在覆盖#display中的值。

更改此行

 $('#display').text(JSON.stringify($("#myForm").serializeObject()));

$('#display').text($('#display').text() + JSON.stringify($("#myForm").serializeObject())); 

Fiddle