Ir para conteúdo

POWERED BY:

Arquivado

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

lulrich

somar input

Recommended Posts

Oi bom dia,

 

Possuo uma linha com inputs conforme abaixo, e gostaria de soma-lá:

<input type="text" name="cor[]" id="cor[]" readonly="readonly" value="<?php echo $cor; ?>">
<input type="text" class="soma" name="tamp[]" id="tamp[]" value="<?php echo $tamp; ?>">
<input type="text" class="soma" name="tamm[]" id="tamm[]" value="<?php echo $tamm; ?>">
<input type="text" class="soma" name="tamg[]" id="tamg[]" value="<?php echo $tamg; ?>">
<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="<?php echo $tamgg; ?>">
<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="<?php echo $tamxgg; ?>">
<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" disabled></td>

achei o seguinte script que faz o cálculo automatico das quantidades que estao na class soma e coloca na class valor:

function calcula(){

        var valor = 0; 
        $('.soma').each(function(i){ 

            valor = parseFloat($(this).val()) + valor ;
        }); 
        $('.valor').val( valor ); //fora do loop
    };

O problema é que esses inputs são gerados de acordo com a quantidade de dados do banco, por exemplo se tem 3 cores ele gera 3x esses inputs, e o script soma tudo junto, gostaria que ele somasse cada linha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é o html envolta dos inputs ?

estão todos na mesma td ? na mesma tr ?

 

Vc vai precisar utilizar this, .parent() e .find() para escrever no .valor de cada linha individualmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi william,

 

estao todos na mesma td,

<tr>
<td width="50">Cor</td>
    <td width="50">Tam P</td>
    <td width="50">Tam M</td>
    <td width="50">Tam G</td>
    <td width="50">Tam GG</td>
    <td width="50">Tam XGG</td>
    <td width="50">Total</td>
</tr>
<tr>
<td>
<span id="tabelacor" value="tabelacor" style="width: 50;">
<input type="text" name="cor[]" id="cor[]" value="Verde">
<input type="text" class="soma" name="tamp[]" id="tamp[]" value="1">
<input type="text" class="soma" name="tamm[]" id="tamm[]" value="1">
<input type="text" class="soma" name="tamg[]" id="tamg[]" value="1">
<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="1">
<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="1">
<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="1">
</td>
<td>
<input type="text" name="cor[]" id="cor[]" value="Amarelo">
<input type="text" class="soma" name="tamp[]" id="tamp[]" value="2">
<input type="text" class="soma" name="tamm[]" id="tamm[]" value="2">
<input type="text" class="soma" name="tamg[]" id="tamg[]" value="2">
<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="2">
<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="2">
<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="2">
</td>
<td>
<input type="text" name="cor[]" id="cor[]" value="Azul">
<input type="text" class="soma" name="tamp[]" id="tamp[]" value="3">
<input type="text" class="soma" name="tamm[]" id="tamm[]" value="3">
<input type="text" class="soma" name="tamg[]" id="tamg[]" value="3">
<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="3">
<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="3">
<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="3">
</td>

Poderias me ajudar como deveria ficar o script? Não entendo quase nada disso, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

function calcula(){

$('tbody td').each(function(i){

var valor = 0;

var $td = $(this);

 

$td.find('.soma').each(function(){

valor += parseFloat($(this).val());

});

$td.find('.valor').val( valor ); //fora do loop

});

}

<tr>

<td width="50">Cor</td>

<td width="50">Tam P</td>

<td width="50">Tam M</td>

<td width="50">Tam G</td>

<td width="50">Tam GG</td>

<td width="50">Tam XGG</td>

<td width="50">Total</td>

</tr>

<tbody>

<tr>

<td>

<span id="tabelacor" value="tabelacor" style="width: 50;">

<input type="text" name="cor[]" id="cor[]" value="Verde">

<input type="text" class="soma" name="tamp[]" id="tamp[]" value="1">

<input type="text" class="soma" name="tamm[]" id="tamm[]" value="1">

<input type="text" class="soma" name="tamg[]" id="tamg[]" value="1">

<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="1">

<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="1">

<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="1">

</td>

<td>

<input type="text" name="cor[]" id="cor[]" value="Amarelo">

<input type="text" class="soma" name="tamp[]" id="tamp[]" value="2">

<input type="text" class="soma" name="tamm[]" id="tamm[]" value="2">

<input type="text" class="soma" name="tamg[]" id="tamg[]" value="2">

<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="2">

<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="2">

<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="2">

</td>

<td>

<input type="text" name="cor[]" id="cor[]" value="Azul">

<input type="text" class="soma" name="tamp[]" id="tamp[]" value="3">

<input type="text" class="soma" name="tamm[]" id="tamm[]" value="3">

<input type="text" class="soma" name="tamg[]" id="tamg[]" value="3">

<input type="text" class="soma" name="tamgg[]" id="tamgg[]" value="3">

<input type="text" class="soma" name="tamxgg[]" id="tamxgg[]" value="3">

<input type="text" class="valor" name="qtenviada[]" id="qtenviada[]" value="3">

</td>

 

</tbody>

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.