0

我已经在以下链接中实现了 JQuery 克隆:

http://jsfiddle.net/sunalive/gqQnJ/13/

相同的事务用于过帐和显示值。我需要显示 JSON 数组(使用 DB 中的 PHP 构建)中的值,该数组具有多行的值。JSON 数组示例如下:

 [{"lineNo":"000001","txtLink":"sddf","txtSelect":"2","txtCheck":"X"},
  {"lineNo":"000002","txtLink":"sdfd","txtSelect":"4","txtCheck":""},
  {"lineNo":"000003","txtLink":"frf","txtSelect":"5","txtCheck":"X"}] 

在显示相同的同时,该行必须克隆(至于行数)并且值要显示在适当的字段中。我不会知道字段的名称或 JSON 数组中的内容,因为所有内容都是在运行时动态生成的。但是,字段名称将在我的表单中(在克隆行中)使用符号item['fieldname'][] ,其中fieldname = JSON 数组中的键。

我能够成功克隆如下 itemarr 保存 JSON 数组的行。

  $(itemarr).each(function(index){ 
     $('.gridcontainer').append(emptyItems.clone());

  }

但我不知道如何使用动态克隆将值显示到表单字段中。

谁能帮我实现这一目标?感谢您的时间和帮助。

更新:我找到了我的解决方案(感谢 Andreas!),以下链接中提供了相同的解决方案:

http://jsfiddle.net/gqQnJ/27/

4

1 回答 1

1
<table id="grid">
    <tr id="emptyItems" style="display:none">
        <td><input type="text" name="item['a'][]" /></td>
        <td><input type="text" name="item['b'][]" /></td>
        <td><input type="text" name="item['c'][]" /></td>
    </tr>
</table>

.

var rows = [
    { "a": 1.1, "b": 1.2, "c": 1.3 },
    { "a": 2.1, "b": 2.2, "c": 2.3 },
    { "a": 3.1, "b": 3.2, "c": 3.3 }
];

$(function() {
    $.each(rows, function(i, row) {
        var newRow = $("#emptyItems").clone().show().appendTo("#grid"),
            inputs = newRow.find("input");

        inputs.each(function() {
            var name = /item\['([^'])'\].*/.exec(this.name)[1];
            this.value = row[name] || "";
        });
    });
});

​示例

于 2012-09-09T17:40:41.850 回答