0

我想将输入的值存储到 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;
    });
});
4

3 回答 3

1

使用 .append() 函数而不是 .text() 函数。

演示小提琴

于 2012-05-30T16:54:36.540 回答
0

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

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

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

工作小提琴

于 2012-05-30T16:54:44.123 回答
0

您正在覆盖 中的值#display

更改此行

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

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

小提琴

于 2012-05-30T17:59:55.803 回答