1

我有一个需要用 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 解决方案很好。谢谢。

4

1 回答 1

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'
             }
          });
于 2012-12-06T22:41:07.757 回答