【发布时间】:2017-09-25 19:41:21
【问题描述】:
我有一个通过解析json对象生成的表单,类似于
<h3>header<h3>
<label>dynamicName</label>
<input type ="text" name="dynamicName" value="dynamicValue"/>
<h3>header2<h3>
<label>dynamicName2</label>
<input type ="text" name="dynamicName2" value="dynamicValue2"/>
<label>dynamicName3</label>
<input type ="text" name="dynamicName3" value="dynamicValue3"/>
现在必须将表单转换回 json,其中标题将是对象,标签将是键值对....我面临的问题是我无法在创建表单期间将字段分组为每个字段检查其类型并基于它已附加到 div.so 而 转换回它的平面键值对。尝试了很多方法 Bt 没有任何效果。任何帮助将不胜感激.. 我试过了
Obj=[] ;
$(#json).find('h3'). each(function)
{
var hd=$(#json).find('h3'). text() ;
$(#json).find('label').each(function)
{
var labelN=$(#json).find('label '). text();
var labelV=$(' # '+labelN). val();
Items={
Items[labelN] =[labelV] ;
}
Object . hd. push(Items);
所有元素都被添加到每个标题中,造成混乱。
我需要的输出格式
Obj jsn={
"header1":
{
" dynamiclabel1":"dynamicValue1"
},
{
"header2":{
"dynamicName2":"dynamicValue2",
"dynamicName 3":"dynamicValue 3"
}
}........
The function used to create a dynamic form is
function addAttributeInput(obj) {
for (var o in obj) {
var vo=.val(obj[o]) ;
if (typeof obj[o] == "object") {
('#json'). append(<h3>o</h3>
addAttributeInput(obj[o]);
} else {
('#json'). append('<label >o</label>'<input type=" text" name='+o+' value ='+vo') ;
}
}
}
addAttributeInput(Obj) ;
【问题讨论】:
-
我的回答有帮助吗?!