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 に答える