我有以下 HTML 块,用于作为表单的一部分从用户收集有关项目的信息:
<div class="clone_block">
Name: <input type="text" name="items[0][name]" /><br />
Amount: <input type="text" name="items[0][amount]" /><br />
<button class="delete">Delete</button>
</div>
我可以克隆这个元素(如果用户想要添加另一个项目)并将其放置在最后一个实例之后div.clone_block
在 DOM 中,一切正常,我还可以删除元素。但是,我最终得到了具有相同名称的文本输入的多个实例,这意味着只有最后一个出现在 POST 请求中(之前的实例被覆盖)。我想要做的是重新编号所有项目,以便第一个项目是item[0]
,第二个是item[1]
etc.
有没有办法在 jQuery 中做到这一点?以这种方式创建名称可以更轻松地使用 PHP 处理 POST 数据,因此如果可能的话,我不想更改命名方案。
您可以实现类似的方法来在每次克隆/删除后重命名元素:
function renumber_blocks() {
$(".clone_block").each(function(index) {
var prefix = "items[" + index + "]";
$(this).find("input").each(function() {
this.name = this.name.replace(/items\[\d+\]/, prefix);
});
});
}
Demo: http://jsfiddle.net/Wzzf2/1/ http://jsfiddle.net/Wzzf2/1/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)