Pessoal gostaria de contribuir com uma função em javascript/jquery que eu criei para numerar automaticamente itens do formulário
Quando temos vários inputs com o mesmo nome
ex:
<input type="hidden" name="cliente[0].id" />
<input type="text" name="cliente[0].nome" />
<input type="hidden" name="cliente[1].id" />
<input type="text" name="cliente[1].nome" />
com a função podemos deixar sem a numeração
ex:
<input type="hidden" name="cliente[].id" />
<input type="text" name="cliente[].nome" />
<input type="hidden" name="cliente[].id" />
<input type="text" name="cliente[].nome" />
no onsubmit do form chamamos a função
ex:
onsubmit="prepareList(this);"
automaticamente os campos serão renomeados para
<input type="hidden" name="cliente[0].id" />
<input type="text" name="cliente[0].nome" />
<input type="hidden" name="cliente[1].id" />
<input type="text" name="cliente[1].nome" />
public void salvar(List<Cliente> cliente){ ... }
function prepareList(form){
var objeto, atributo, arrObjeto=[];
$(form).find("*[name*='[].']").each(function(){
objeto = $(this).attr("name").split("[].")[0];
atributo = $(this).attr("name").split("[].")[1];
var i = 0;
$(document.getElementsByName(objeto + "[]." + atributo)).each(function(){
$(this).attr("newName", objeto + "[" + i + "]." + atributo);
i++;
});
});
$("*[newName]").each(function(){ this.name = $(this).attr("newName"); $(this).removeAttr("newName"); });
}
quem quiser comentar, melhorar, criticar, elogiar fique a vontade
Um grande abraço...

