Javascript 将表单数据转换为JSON

Javascript 将表单数据转换为JSON,javascript,json,html,Javascript,Json,Html,名称: 年龄: 试着用name=“age”替换age=“name”第二个input type=“text”,使用.serializeArray(),$.post() $(“表格”)。提交(功能(e){ e、 预防默认值(); var data=$(this.serializeArray(); 控制台日志(数据); //$.post(“/path/to/server”,数据); }); 姓名: 年龄: 纯JavaScript解决方案是: var form = document.getEl


名称:
年龄:


试着用
name=“age”
替换
age=“name”
第二个
input type=“text”
,使用
.serializeArray()
$.post()

$(“表格”)。提交(功能(e){
e、 预防默认值();
var data=$(this.serializeArray();
控制台日志(数据);
//$.post(“/path/to/server”,数据);
});

姓名:

年龄:


纯JavaScript解决方案是:

var form = document.getElementsByTagName('form')[0];

form.addEventListener('submit',function(event){
     event.preventDefault();
     var data = {
         "name":this.name.value,
         "age":this.age.value
     };

     console.log(data);
});
检查此功能

var formDataToObject = function (formElm) {
        var formObj = new FormData(formElm),
            result = {},
            values = formObj.values(),
            keys = formObj.keys(),
            key;


            while (!(key = keys.next()).done) {
                result[key.value] = values.next().value;
            }

        return result;
    };
这里有两个注释:

1) 不支持多个选择选项,它将返回最后选择的选项

2) 当具有done的next()返回对象等于true时,循环中断, 但该对象还包含表单中最后一个元素的
这在大多数情况下是提交按钮,因此,如果表单中没有最后一个元素,那么最后一个元素将被排除,很容易修复。

服务器代码是什么样子的?为什么它需要JSON?