我正在寻找一种有效的方法,要么是复制/重命名,要么重新创建地址字段以提供在同一页上提交多个地址的功能。因此,以这样一个表单示例为例:
<div id="addresses">
<div class="address">
<input type="text" name="address[0].street">
<input type="text" name="address[0].city">
<input type="text" name="address[0].zip">
<input type="text" name="address[0].state">
</div>
</div>
<a href="" id="add_address">Add address form</a>
据我所理解,有两种方法可以实现此目的:
逐个重新创建表单字段并增加索引,但这种方式有点啰嗦:
var index = $(".address").length; $('<`input`>').attr({ name: 'address[' + index + '].street', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].city', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].zip', type: 'text' }).appendTo(...); $('<`input`>').attr({ name: 'address[' + index + '].state', type: 'text' }).appendTo(...);
克隆现有图层并在克隆中替换名称:
$("div.address").clone().appendTo($("#addresses"));
您建议在效率方面使用哪一个?如果是第二个,请指导我如何搜索并替换所有的 [0] 为 [1]([n])。谢谢。