一、$("#myForm").serialize()
将表单数据转换为 k=v&k2=v2
k是name v是value
二、$("#myForm"). serializeArray()
将表单数据转换为 对象数组 相同的name不会覆盖
例如
[
{
"name": "1",
"value": "B"
},
{
"name": "2",
"value": "B"
},
{
"name": "3",
"value": "B"
},
{
"name": "4",
"value": "B"
},
{
"name": "4",
"value": "C"
}
]
三、
function form2Json(form) {
var jsForm = form.get(0);
var formData = new FormData(jsForm);
var json = {};
for (var [a, b] of formData.entries()) {
//这里是如果有多选框多个值使用逗号拼接
if(json[a]){
json[a] += ',' + b;
}else{
json[a] = b;
}
}
return json;
}
将表单数据转换为 对象数组 相同的name会用逗号拼接
例如
{
"1": "B",
"2": "B",
"3": "B",
"4": "B,C"
}
四、
function transformToJson(form) {
var jsonData = {};
var formData = form.serializeArray();
$.each(formData, function () {
var dataType = $("select[name='" + this.name + "']").attr("data-type");
var value=this.value
//这里可以进行自由定义
if(value=="无" || value==""){
value=null;
}
if (jsonData[this.name]) {
if (!jsonData[this.name].push) {
jsonData[this.name] = [jsonData[this.name]];
}
jsonData[this.name].push(value || '');
} else {
if (dataType == 'array') {
jsonData[this.name] = [];
jsonData[this.name].push(value || '');
} else {
jsonData[this.name] = value || '';
}
}
});
return jsonData;
}
将表单数据转换为 对象数组 相同的name为数组
例如
{
"1": "B",
"2": "B",
"3": "B",
"4": [
"B",
"C"
]
}