收集每次在json中提交的表单数据

时间:2016-09-02 09:15:40

标签: javascript json

我正在使用一个代码,当我们提交表单时,会以 JSON 格式获取所有表单输入字段值。

但我想收集所有时间数据,即每次提交表格时都应收集并显示结果。在目前的情况下,我只有一次提交:

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};


$(function() {
    $('form').submit(function(e) {
        var ks = $('#answer').val().split("\n");
        var formData = $('form').serializeObject();
        $.extend(formData, { answerss : ks});
        var result = JSON.stringify(formData);  
        $("#result").html(result);
return false;
    });
});

当前输出:

{
    "question": "1+1",
    "type": "checkbox",
    "answer": "1\r\n2\r\n3\r\n4",
    "mandatory": "yes",
    "json_data": "",
    "answerss": ["1", "2", "3", "4"]
}

https://jsfiddle.net/aw339kwo/6/

1 个答案:

答案 0 :(得分:0)

使用数组说' resultFormArray'每次你将push提交给这个数组。即resultFormArray.push(formData)其中formData是具有当前提交数据的obj。现在resultFormArray将包含所有表单数据。

 var resultFormArray=[ ];                                                                         
        $(function() {
            $('form').submit(function(e) {
                var ks = $('#answer').val().split("\n");
                var formData = $('form').serializeObject();
                $.extend(formData, { answerss : ks});                                            
                resultFormArray.push(formData); 
                console.log(resultFormArray) /*will have all the form  datas in this*/
              /*var result = JSON.stringify(formData);  
               $("#result").html(result);    */                                                               
              return false;
            }); 
        });