Ir para conteúdo

POWERED BY:

Arquivado

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

biza

Como retornar valor para fora da função

Recommended Posts

Viva malta,

Estou aqui com uma duvida como poderei retornar valores para fora de uma função tipo esta ...

	 id('maisGAS_'+checkbox.id).onclick = function(){  
	 id('quantidadeGAS_'+checkbox.id).value = parseInt( id('quantidadeGAS_'+checkbox.id).value ) + 1; 

     }	
	 

Esse id('quantidadeGAS'+checkbox.id). value quero trabalhar com ele fora dessa função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá biza,

 

Você pode guardar este valor em uma váriavel, por exemplo:

 

 

var valor;
id('maisGAS_'+checkbox.id).onclick = function() {
    valor = parseInt(id('quantidadeGAS_'+checkbox.id).value);
    id('quantidadeGAS_'+checkbox.id).value =  valor + 1; 
    testar();
};
 
function testar() {
    alert(valor);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo ser intrepertada por uma variável:

var valor;
id('maisGAS_'+checkbox.id).onclick = function() {
    valor = parseInt(id('quantidadeGAS_'+checkbox.id).value);
    id('quantidadeGAS_'+checkbox.id).value =  valor + 1; 
    testar();
};
 
function testar() {
    alert(valor);
}

var quantidade = testar();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve lembrar que a váriavel "valor" só vai ser preenchida no evento onclick do seu elemento, qualquer função que a manuseie deve ser chamada depois deste evento ser emitido pelo navegador.

 

Não sei se entendi, mas para retornar um valor para fora da função você usa a instrução return:

function getValor() {
    return "pega a variável aqui";
};
var valor = getValor();

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é que tou tentando passar o valor todo de um incremento de quantidades para uma variável não esta funcionando

function gastFun(checkbox) {
   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 = parseInt( id('quantidadeGAS_'+checkbox.id).value ); 
	 id('quantidadeGAS_'+checkbox.id).value = valor +1;
	 incre_d();
     }	
	 
	/*função de incrementar dinamico dos buttoes*/
	id('menosGAS_'+checkbox.id).onclick = function(){  
	if( id('quantidadeGAS_'+checkbox.id).value> 1 )
    valor = parseInt( id('quantidadeGAS_'+checkbox.id).value );
	id('quantidadeGAS_'+checkbox.id).value = valor -1;
	incre_d();
    }
	
	function incre_d(){ 
	alert(valor);
	};
	
	
	var quantidade = incre_d();
	document.getElementById('quantiaGAS_'+ checkbox.id).value=quantidade; 
	document.getElementById('subtotalGAS_'+ checkbox.id).value=price;
	document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";
	}else{
		
	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

Suponho que a função "gastFun" seja chamada apenas uma vez para inicializar o checkbox, e não em um onclick ou qualquer outro evento que é chamado repetida vezes.

 

Em nenhum local você incrementa ou decrementa a variável valor, você pode trocar:

id('quantidadeGAS_' + checkbox.id).value = valor + 1;

por

valor += 1;
id('quantidadeGAS_' + checkbox.id).value = valor;

Porque vocẽ está fazendo isso?

var quantidade = incre_d();

Você quer o conteúdo da variável valor? ela já está no seu escopo. seria o equivalente a:

var quantidade = valor;

O que é totalmente desnecessário, seria apenas renomear uma váriavel

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson muito obrigado,

Substitui tudo que você me aconcelhou e me esta dando certo so estou tendo um problema, os subtotais são campos dinâmicos , como poderei somar todos eles no fim?

function gastFun(checkbox) {
   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+"€";
	document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";
  //aqui gostaria de somar mas os subtotais são dinâmicos
total=;
	};
	
	
	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+"€";
	document.getElementById('qnt_'+ checkbox.id).innerHTML = quantidade+"x";
        //aqui gostaria de somar mas os subtotais são dinâmicos
	total=;

	}else{
		
	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

×

Informação importante

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