Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leo Barreto

Não soma novos campos.

Recommended Posts

Bem Amigos, do Fórum Imasters

 

Caso já tenha aparecido a mesma dúvida postem o link da resolução, por favor.

 

Então, tenho uma função js que soma os valores da tabela html por célula.

$('#itensproduto tr').keyup(function() {
  var soma = 0;
  $(this).find('input[type=text]').each(function(i){
    if(i < 4){
      soma += parseInt($(this).val());
    }else if(i === 4){
      if(!isNaN(soma)){
	$(this).val(soma);
      }
    }
  });
});

e tenho uma função que adiciona dinamicamente as linhas de acordo com a quantidade de cores de um produto

function addCor(cor){
  var totals = 0;
  totals++;
  tbl = document.getElementById("itensproduto");

  var novaLinha = tbl.insertRow(1);
  var novaCelula;

  if(totals%2 === 0) cl = "#F5E9EC";
  else cl = "#FBF6F7";

  novaCelula = novaLinha.insertCell(0);

  novaCelula.innerHTML = cor;

  for(c=0; c < 4; c++){
    novaCelula = novaLinha.insertCell(c+1);
    novaCelula.align = "left";
    novaCelula.style.backgroundColor = cl;
    novaCelula.innerHTML = '<input type="text" size="5" value="0" >';
  }
  
  novaCelula = novaLinha.insertCell(5);
  novaCelula.align = "left";
  novaCelula.style.backgroundColor = cl;
  novaCelula.innerHTML = '<input type="text" name="totCor" size="5" value="0" >';
}

porém a função de soma não está somando as linhas adicionadas dinamicamente.

 

Quem se habilita a ajudar o colega iniciante na profissão de programador web?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa dúvida já foi respondida algumas vezes, e é relativamente comum... Porém, em uma busca rápida aqui, não achei. Então, lá vai:

Troque a linha

$('#itensproduto tr').keyup(function() {

por

$('#itensproduto').on('keyup','tr',function() {

Como recomendação, já que você é iniciante, leia a documentação do jQuery. Não apenas o que lhe interessa, mas tudo. Assim, você pode, inclusive, descobrir jeitos novos de resolver problemas antigos.

Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael,

Valeu pela ajuda à jato, querido!!! Já estava há alguns dias com esse problema e me batendo. Não achei nada parecido.

 

Farei essa leitura sim.

mais uma vez, grato!

 

E obviamente que funcionou! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa dúvida já foi respondida algumas vezes, e é relativamente comum... Porém, em uma busca rápida aqui, não achei. Então, lá vai:

 

Troque a linha

$('#itensproduto tr').keyup(function() {

por

$('#itensproduto').on('keyup','tr',function() {

Como recomendação, já que você é iniciante, leia a documentação do jQuery. Não apenas o que lhe interessa, mas tudo. Assim, você pode, inclusive, descobrir jeitos novos de resolver problemas antigos.

 

Abs,

 

Reabri o tópico só para não criar um novo, já que o assunto continua. rs

 

Agora eu preciso da soma dos totais, ou seja, da soma das células que receberam o total por linha.

Eu vi que vc ajudou um outro colega, tentei adaptar seu código à minha necessidade - ou seja, dentro da função que soma por linha, mas não rolou. Eu até consigo pegar o valor, mas apenas da célula de uma linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Defina uma classe as celulas que recebem o total por linha. Ex

<tr class="total">100</tr>

E faça

var total = 0;
$('#itensproduto .total').each(function() {
    total += Number($(this).text());
})

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Defina uma classe as celulas que recebem o total por linha. Ex

<tr class="total">100</tr>

E faça

var total = 0;
$('#itensproduto .total').each(function() {
    total += Number($(this).text());
})

Show de bola.

Mais uma vez, grato pela ajuda e paciência!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.