Ir para conteúdo

POWERED BY:

Arquivado

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

biza

somatório de vários campos de input automaticamente

Recommended Posts

viva malta,

Tenho aqui um probleminha em javascript para resolver que não estou conseguindo...

Então possuo umas caixas de input text fields dinâmicas onde estão valores provenientes do mysql, eu gostaria ao activar as checkbox somar os valores contidos dentro dessas caixas de input text fields. Já tenho uma parte do código a funcionar agora falta o somatório tem alguém que me possa ajudar.

function gastFun(checkbox) {
	/*inicialmente o total é igual a 0*/
	var total,i;
	total=0;
    if(checkbox.checked){
		
        var price = checkbox.value;
	    var escolha = document.getElementById('gas_' + checkbox.id);
        var prato = document.getElementById('show_details' + checkbox.id);
        escolha.setAttribute('style', 'display:block;');
        prato.setAttribute('style', 'display:block;');
        
        /*função de incrementar dinamico dos buttoes*/
        var valor =1;
        id('maisGAS_'+checkbox.id).onclick = function(){
        valor += 1;
        id('quantidadeGAS_' + checkbox.id).value = valor;
            incre_d();
        }
        
        /*função de incrementar dinamico dos buttoes*/
        id('menosGAS_'+checkbox.id).onclick = function(){
            if( id('quantidadeGAS_'+checkbox.id).value> 1 )
                valor -= 1;
            id('quantidadeGAS_' + checkbox.id).value = valor;
            incre_d();
            
        }
        
        function incre_d(){
            var quantidade = valor;
            document.getElementById('quantiaGAS_'+ checkbox.id).value=quantidade;
            var subtotal = quantidade * price;
            subtotal = subtotal.toFixed(2);
			
            document.getElementById('subtotalGAS_'+ checkbox.id).value=subtotal;
            document.getElementById('show_item'+ checkbox.id).innerHTML = subtotal+" EUR";
            document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";
			/*iniciar aqui o sumatorio*/	
        };
        
        
        var quantidade = valor;
        document.getElementById('quantiaGAS_'+ checkbox.id).value=quantidade;
        var subtotal = quantidade * price;
        subtotal = subtotal.toFixed(2);
        document.getElementById('subtotalGAS_'+ checkbox.id).value=subtotal;
        document.getElementById('show_item'+ checkbox.id).innerHTML = subtotal+" EUR";
        document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";
    	
	
	

	

    }else{
        id('quantidadeGAS_' + checkbox.id).value = 1;
        var prato = document.getElementById('show_details' + checkbox.id);
        var escolha = document.getElementById('gas_' + checkbox.id);
        escolha.setAttribute('style', 'display:none;');
        prato.setAttribute('style', 'display:none;');
        
    }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou tentar:

bom tenho algumas caixas de texto que são geradas automaticamente, de acordo com as linhas devolvidas pela bd, desta forma:

<input name="subtotal[]" id="subtotalGAS_'.$i.'" value="'.$rowRES['preco'].'" size="10" />

cada vez que eu valido uma checkbox, o valor dessa caixa é activado, ou seja cada checkbox representa um campo de texto. (existem tantas caixas de texto quanto checkbox)

O que eu quero é somar automaticamente as caixas de texto para as quais as checkbox estão validadas, parte disso já faz o que não esta fazendo é o somatório.

que deveria ser algo tipo:

sum = sum + subtotal[i];

Nota: subtotal esta declarado no código do primeiro post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Electronic, vou mandar vários prints dos estados que anteriormente mencionei..

Screen%20Shot%202014-12-09%20at%2010.23.37.png?dl=0

Screen%20Shot%202014-12-09%20at%2010.27.49.png?dl=0

 

 

 

masters,

Consegui efectuar o somatorio... Contudo surgiu um novo problema cada vez que incremento quantidades no meu código ele começa por duplicar o valor final, caso alguém me ajude a corrigir esse problema fico eternamente grato.

function gastFun(checkbox) {	/*inicialmente o total é igual a 0*/	var total, price, escolha, prato, valor, quantidade, subtotal, parcela, chk;	total = document.getElementById('total');	valor=1;if(checkbox.checked){		/*preco do item com verificacao*/        price = checkbox.value;		/**/	    escolha = document.getElementById('gas_' + checkbox.id);        prato = document.getElementById('show_details' + checkbox.id);        escolha.setAttribute('style', 'display:block;');        prato.setAttribute('style', 'display:block;');             /*função de incrementar dinamico dos buttoes*/        id('maisGAS_'+checkbox.id).onclick = function(){        valor+=1;        id('quantidadeGAS_' + checkbox.id).value = valor;        incre_d();		add(checkbox);        }                /*função de incrementar dinamico dos buttoes*/        id('menosGAS_'+checkbox.id).onclick = function(){        if( id('quantidadeGAS_'+checkbox.id).value> 1 )        valor -= 1;        id('quantidadeGAS_' + checkbox.id).value = valor;        incre_d();        }                function incre_d(){            quantidade = valor;            subtotal = quantidade * price;            subtotal = subtotal.toFixed(2);						document.getElementById('quantiaGAS_'+ checkbox.id).value=quantidade;            document.getElementById('subtotalGAS_'+ checkbox.id).value=subtotal;            document.getElementById('show_item'+ checkbox.id).innerHTML = subtotal+" EUR";            document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";			/*iniciar aqui o sumatorio*/		 	       		 };                        quantidade = valor;        subtotal = quantidade * price;        subtotal = subtotal.toFixed(2);				document.getElementById('quantiaGAS_'+ checkbox.id).value=quantidade;        document.getElementById('subtotalGAS_'+ checkbox.id).value=subtotal;        document.getElementById('show_item'+ checkbox.id).innerHTML = subtotal+" EUR";        document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";		add(checkbox);				/*iniciar aqui o sumatorio*/	    }else{			       	id('quantidadeGAS_' + checkbox.id).value = 1;		        prato = document.getElementById('show_details' + checkbox.id);        escolha = document.getElementById('gas_' + checkbox.id);		        escolha.setAttribute('style', 'display:none;');        prato.setAttribute('style', 'display:none;');		subtract(checkbox);		}/*end else*/							function add(checkbox){ 	total.value= Number(total.value*1+checkbox.value*quantidade).toFixed(2);	}	function subtract(checkbox){ 	total.value = Number(total.value*1 - checkbox.value*1).toFixed(2);	}/**end funcao gastronomia**/}

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.