我有一个表单,用户可以通过单击按钮添加更多字段。它是通过克隆制造,改变了名称,并在DIV apending领域:未选择克隆输入
$("#add").click(function(){
var linha = $("#linha").clone();
var num = $("#cont").val();
var novo = parseInt(num) + 1;
novo = novo.toString();
linha.find('#FaturamentoHoraExtra'+num+'Nome').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][nome]'});
linha.find('#FaturamentoHoraExtra'+num+'Nome').val('');
linha.find('#FaturamentoHoraExtra'+num+'Responsabilidade').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][responsabilidade]'});
linha.find('#FaturamentoHoraExtra'+num+'Responsabilidade').removeAttr("selected");
linha.find('#FaturamentoHoraExtra'+num+'MaodeobraId').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][responsabilidade]'});
linha.find('#FaturamentoHoraExtra'+num+'MaodeobraId').removeAttr("selected");
linha.find('#FaturamentoHoraExtra'+num+'Salario').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][salario]'});
linha.find('#FaturamentoHoraExtra'+num+'Salario').val('');
linha.find('#FaturamentoHoraExtra'+num+'Qtd50').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][qtd_50]'});
linha.find('#FaturamentoHoraExtra'+num+'Qtd50').val('');
linha.find('#FaturamentoHoraExtra'+num+'Valor50').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][valor_50]'});
linha.find('#FaturamentoHoraExtra'+num+'Valor50').val('');
linha.find('#FaturamentoHoraExtra'+num+'Qtd100').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][qtd_100]'});
linha.find('#FaturamentoHoraExtra'+num+'Qtd100').val('');
linha.find('#FaturamentoHoraExtra'+num+'Valor100').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][valor_100]'});
linha.find('#FaturamentoHoraExtra'+num+'Valor100').val('');
linha.find('#FaturamentoHoraExtra'+num+'Dsr').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][dsr]'});
linha.find('#FaturamentoHoraExtra'+num+'Dsr').val('');
linha.find('#FaturamentoHoraExtra'+num+'Total').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][total]'});
linha.find('#FaturamentoHoraExtra'+num+'Total').val('');
linha.find('#FaturamentoHoraExtra'+num+'Obs').attr({'name': 'data[FaturamentoHoraExtra]['+novo+'][obs]'});
linha.find('#FaturamentoHoraExtra'+num+'Obs').val('');
linha.appendTo("#bloco");
$("#cont").val(novo);
return false;
});
所有的字段由一些功能自动计算。这是我做的:
$("input[name$='[dsr]']").change(function(){
somaColaborador();
totalDsr();
totalGeral();
});
$("input[name$='[valor_50]']").change(function(){
total50();
somaColaborador();
totalDsr();
totalGeral();
});
$("input[name$='[valor_100]']").change(function(){
total100();
somaColaborador();
totalDsr();
totalGeral();
});
$("input[name$='[porcentagem]']").change(function(){
porcentagemRateio();
});
我的作品,但通过克隆新领域的“原始”没有选择,虽然它们具有相同的端名称。所以,计算不成立,我不明白为什么。
看起来就像你是它过于复杂反正渲染无效的HTML标记与重复的ID。如果你提供了MCVE或至少相关的HTML标记,我想有人可以发布更好/更易读和可维护的方式 –
还是要知道,这会导致无效的HTML标记,得到重复的ID:var linha = $(“#linha” ).clone();'** && **'linha.appendTo(“#bloco”);'。然后在DOM中至少得到两个具有相同id'linha'的元素,这是无效的。顺便说一句,同样的事情适用于所有的后代。最好不要在这里使用ID。 –