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?