我有一个表格需要填充JSON数据。表单包含需要填充的select,textarea和input元素。 JSON数据是复杂/分层的(即许多嵌套对象)。
我知道http://www.keyframesandcode.com/code/development/javascript/jquery-populate-plugin/但它使用方括号表示法映射到字段名称(例如
<input name="person[name][last]" ...
我需要使用点符号(例如
<input name="person.name.last" ...
我正在使用jQuery,所以jQuery解决方案很好。感谢。
答案 0 :(得分:1)
这是使用递归函数填充的一个被黑客攻击的替代方法:
function populator(json, nodes){
$.each(json, function(key, value){
newNodes = nodes ? nodes.slice() : [];
newNodes.push(key);
if (typeof(value)=="object") {
populator(value, newNodes);
else
$('name["' + newNodes.join('.') + '"]').val(value);
}
});
}
你可以这样做:
populator({
person: {
name: {
last: 'Doe',
first: 'John'
},
address: {
street: '123 Main Street',
city: 'Montgomery',
state: 'AL'
}
});