这个问题在这里已经有答案了:
使用jQuery将表单数据转换为JavaScript对象
(59个答案)
(59个答案)
四年前关闭的
我正在尝试将HTML
表单数据转换为JSON
对象,我有这个线程,但我不知道为什么它不适合我。我正在使用以下代码
<;form id=“myform”action=“”method=“post”>;
<;div class=“表单字段”>;
<;标签for=“title”>;标题</标签>;
<;输入name=“title”id=“title”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段表单必填”>;
<;=“您的姓名”标签>;你的名字</标签>;
<;输入name=“yourName”id=“yourName”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段”>;
<;标签为=“联系人编号”>;联系电话:</标签>;
<;输入name=“contact”id=“contact”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段”>;
<;标签for=“description”>;说明:</标签>;
<;textarea name=“description”id=“description”rows=“1”cols=“40”aria required=“true”></textarea>;
</部门>;
<;div class=“表单字段”>;
<;标签为=“电子邮件”>;电子邮件:</标签>;
<;输入name=“email”id=“email”type=“text”value=“可选”size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段”>;
<;=“城市”的标签>;城市:</标签>;
<;输入name=“city”id=“city”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段”>;
<;“国家/地区”的标签>;国家:</标签>;
<;输入name=“country”id=“country”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;div class=“表单字段”>;
<;=“pic1”的标签>;图片1:</标签>;
<;输入type=“file”name=“pic1”id=“pic1”>;
</部门>;
<;div class=“表单字段”>;
<;=“pic2”的标签>;图2:/标签>;
<;输入type=“file”name=“pic2”id=“pic2”>;
</部门>;
<;div class=“表单字段”>;
<;=“pic3”的标签>;图3:/标签>;
<;输入type=“file”name=“pic3”id=“pic3”>;
</部门>;
<;div class=“表单字段”>;
<;=“pic4”的标签>;图4:/标签>;
<;输入type=“file”name=“pic4”id=“pic4”>;
</部门>;
<;div class=“表单字段”>;
<;=“pic5”的标签>;图5:/标签>;
<;输入type=“file”name=“pic5”id=“pic5”>;
</部门>;
<;div class=“表单字段”>;
<;=“需求”标签>;您的要求:</标签>;
<;输入name=“demand”id=“demand”type=“text”value=”“size=“40”aria required=“true”>;
</部门>;
<;p class=“提交”>;
<;输入type=“submit”name=“postAd”id=“postAd”class=“button”value=“Post Ad For Review”>;
</p>;
<;div id=“结果”>;你好</部门>;
</表格>;
 
$(文档).ready(函数(){
$.fn.serializeObject=函数(){
var o={};
var a=this.serializeArray();
$.each(a,function(){
if(o[this.name]==未定义){
如果(!o[this.name].push){
o[this.name]=[o[this.name]];
}
o[this.name].push(this.value | |“”);
}否则{
警报(此名称);
o[this.name]=this.value | |“”;
}
});
返回o;
};
$('#myform')。提交(函数(){
$('#result').text(JSON.stringify($('#myform').serializeObject());
返回false;
});
});
我试着调试它,我注意到当我的函数运行时,它总是在else语句中运行代码
我在JSFIDLE中添加了上述表单,它将JSON数据显示为输出
工作桥
$(函数(){
$('form')。提交(函数(){
$('#result').text(JSON.stringify($('form').serializeObject());
返回false;
});
});