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

.text() 関数の代わりに .append() 関数を使用します。

デモフィドル

于 2012-05-30T16:54:36.540 に答える
0

の値を上書きしています#display

この行を変更

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

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

フィドル

于 2012-05-30T17:59:55.803 に答える
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 に答える