将表单数据转换为JSON对象[重复]

这个问题在这里已经有答案了
使用jQuery将表单数据转换为JavaScript对象

(59个答案)

四年前关闭的

我正在尝试将HTML表单数据转换为JSON对象,我有这个线程,但我不知道为什么它不适合我。我正在使用以下代码

<form id=“myform”action=“”method=“post”>
<div class=“表单字段”>
<标签for=“title”>标题&lt/标签>
<输入name=“title”id=“title”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段表单必填”>
<=“您的姓名”标签>你的名字&lt/标签>
<输入name=“yourName”id=“yourName”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段”>
<标签为=“联系人编号”>联系电话:&lt/标签>
<输入name=“contact”id=“contact”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段”>
<标签for=“description”>说明:&lt/标签>
<textarea name=“description”id=“description”rows=“1”cols=“40”aria required=“true”&gt&lt/textarea>
&lt/部门>
<div class=“表单字段”>
<标签为=“电子邮件”>电子邮件:&lt/标签>
<输入name=“email”id=“email”type=“text”value=“可选”size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段”>
<=“城市”的标签>城市:&lt/标签>
<输入name=“city”id=“city”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段”>
<“国家/地区”的标签>国家:&lt/标签>
<输入name=“country”id=“country”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<div class=“表单字段”>
<=“pic1”的标签>图片1:&lt/标签>
<输入type=“file”name=“pic1”id=“pic1”>
&lt/部门>
<div class=“表单字段”>
<=“pic2”的标签>图2:/标签>
<输入type=“file”name=“pic2”id=“pic2”>
&lt/部门>
<div class=“表单字段”>
<=“pic3”的标签>图3:/标签>
<输入type=“file”name=“pic3”id=“pic3”>
&lt/部门>
<div class=“表单字段”>
<=“pic4”的标签>图4:/标签>
<输入type=“file”name=“pic4”id=“pic4”>
&lt/部门>
<div class=“表单字段”>
<=“pic5”的标签>图5:/标签>
<输入type=“file”name=“pic5”id=“pic5”>
&lt/部门>
<div class=“表单字段”>
<=“需求”标签>您的要求:&lt/标签>
<输入name=“demand”id=“demand”type=“text”value=”“size=“40”aria required=“true”>
&lt/部门>
<p class=“提交”>
<输入type=“submit”name=“postAd”id=“postAd”class=“button”value=“Post Ad For Review”>
&lt/p>
<div id=“结果”>你好&lt/部门>
&lt/表格>

&nbsp

$(文档).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;
});
});

发表评论