Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde.
Eu tenho um formulário e estou tendo vários problemas nele.
Vou postar o código HTML
<table width="100%" style="font-size:12px;">
<tbody>
<tr>
<td class="indent15" width="20%">Despesa Principal</td>
<td>
<?php echo MontaInput("text", "despesaprin", $res['Despesa'], "", "readonly") ?>
<?php echo MontaInput("button", "add", "+", "btn btn-success adicionar") ?>
</td>
</tr>
<tr id="linhas">
<td class="indent15">Despesas</td>
<td>
<?php echo MontaInput("text", "valor[]", "", "span2", "required placeholder='Valor'"); ?>
<?php echo MontaInput("text", "despesa[]", "", "span1 autocparray sn", "required"); ?>
<i class="icon icon-search showdiv mao" alt="tab1"></i>
<?php echo MontaInput("text", "descdespesa[]", "", "span4", "readonly"); ?>
</td>
</tr>
</tbody>
</table>
Eu tenho essa tabela aí. Notem que tem um botão ADD (classe adicionar), ele adiciona linhas na tabela, caso haja necessidade de ter mais. Beleza.
Agora o JS
// Adicionar Campo no Rateio de Despesas
$(".adicionar").on("click", function(){
$("#linhas").after('<tr><td class="indent15">Despesas</td>'+
'<td><input type="text" name="valor[]" class="span2" required placeholder="Valor" /> '+
'<input type="text" name="despesa[]" class="span1 autocparray sn" required /> '+
'<i class="icon icon-search showdiv mao" alt="tab1"></i> '+
'<input type="text" name="descdespesa[]" class="span4" readonly /> '+
'<input type="button" name="del" class="btn btn-danger remover" value="-" /></td></tr>');
$('.remover').click(RemoverD);
});
// Remover Linha Rateio de Despesas
function RemoverD(){
$(this).parent().parent().remove();
}
Eu crio uma linha nova com essas funções com a única diferença de acrescentar um botão de remover a linha adicionada por último. Beleza.
A questão é a seguinte: essa parte é mostrada no modal do Bootstrap. Daí eu clico aparece o modal com essa tabela. Se for a primeira vez eu aperto o Botão ADD ele adiciona uma linha. Se eu fecho o Modal e abro de novo e clico no ADD ele adiciona DUAS linhas. Se eu fecho e abro de novo, ele cria 4 Linhas. Não estou conseguindo arrumar isso.
Depois tem outra questão, mas vamos essa primeiro... alguém pode me ajudar ?
Não. Arcaico.
Até queria não deixar a função RemoverD() daquele jeito, queria deixar como a outra usando o ON, mas não consegui.
...
Não quero usar javascript puro.
Bom Dia.
Consegui resolver.
$(".adicionar").off('click');
Coloquei essa linha de comando antes de executar o ON da mesma classe. Agora só adiciona uma linha por uma e mesmo que eu saio do Modal e entre de novo, ele adiciona uma por uma.
Obrigado.
ao invez de colocar o adicionar baseado na classe, crie uma funcao separada igual tu fez com o remover para adicionar a tr, e la no botao adicionar coloca onclick=funcao_que_voce_criou