Somar valores

1 resposta
Jo_Augusto_Gon_lves
Bom dia... Eu to com um baita problema que não consegui encontrar uma solução.... Eu tenho uma tabela com alguns checkbox, preciso que quando esses check forem marcados em algum lugar da tabela me mostre o resultado com o valor. Ou seja, quando o usuário clicar no check automaticamente o valor vai somando ou subitraindo mostrando na tela o resultado. Bom até consegui fazer isso, usando o value do checkbox, porém eu não vou poder usar o valor dele eu tenho que pegar o valor vindo da tabela, como se estivesse dando um inner.HTML, mais isso tem que estar lincado com a marcação do check. Eu tenho id´s no check e no <td> correspondente ao valor que preciso pegar que tem nomes diferente, porém ele são sequenciais como vc poderá ver na tabela abaixo com o código que tenho. Se alguém puder me dar uma luz quanto a esse assunto agradeceria mt... Segue o code:
<script type="text/javascript">
function id( el ){
        return document.getElementById( el );
}
function faz_conta( valor )
{
        id('s1').value = parseFloat( id('s1').value ) + parseFloat( valor );
}
window.onload = function()
{
        var inputs = id('grid').getElementsByTagName('input');
        for( var i=0; i<inputs.length; i++ )
        {
                if( inputs[i].type=='checkbox' )
                {
                        inputs[i].onclick = function()
                        {
                                valor = this.value.replace(',','.');
                                var valor = this.checked ? valor : -1*valor;
                                
                                faz_conta( valor );
                        }
                }
        }
}

></script>
        <table border="1" id="grid">
                <tr>
                        <td></td>
                        <td>Data</td>
                        <td>Hist&oacute;rico</td>
                        <td>N&ordm; do Cheque</td>
                        <td>Tipo</td>
                        <td>Valor</td>
                </tr>             
                <tr>
                        <td><input type="checkbox" name="lc1" id="lc1" value="5" /></td>
                        <td>17/05/2010</td>
                        <td>testefsdf445465465654</td>
                        <td>000000001</td>
                        <td>C</td>
                        <td id="nc1">150,00</td>
                </tr>
                <tr bgcolor="#D9F9EF">
                        <td><input type="checkbox" name="lc2" id="lc2" value="1" /></td>
                        <td>17/05/2010</td>
                        <td>fdsalkjsdfljkdsfalkjfdsalkjfaslkj</td>
                        <td>111000</td>
                        <td>C</td>
                        <td id="nc2">10,00</td>
                </tr>
        </table>

        <br />
        Saldo no Extrato:<br />
        <input type="text" name="sl" id="s1" value="0" readonly="readonly" size="9" />

1 Resposta

Jo_Augusto_Gon_lves

Consegui em termos só que faltam alguns ajustes que não sei como fazer. Eu tenho que usar o parseFloat para passar de string para valor e fazer com que ele não use somente o id="nc1", mais todos os que forem gerados. Pois os id´s vão ser gerados em sequência numérica; nc1,nc2,nc3.......

<script type="text/javascript">
function id( el ){
        return document.getElementById( el );
}
function faz_conta( valor )
{
        id('s1').value = parseFloat( id('s1').value ) + parseFloat( valor );
}
window.onload = function()
{
        var inputs = id('grid').getElementsByTagName('input');
        for( var i=0; i<inputs.length; i++ )
        {
                if( inputs[i].type=='checkbox' )
                {
                        inputs[i].onclick = function ()
                        {
                                valor = document.getElementById('nc1').innerHTML= parseFloat();
                                var valor = this.checked ? valor : -1*valor;
                                
                                faz_conta( valor );
                        }
                }
        }
}

></script>
Criado 9 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 1
Participantes 1