Ir para conteúdo

Arquivado

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

biza

problema de limpeza de variavel (acho)

Recommended Posts

meus amigos sou um iniciante em javascript e estou com dificuldade em fazer umas coisas. abaixo envio uma imagem para ajudar a entender a ideia:toze.png?dl=0

o problema é eu tenho uma checklist que activa uma caixa de texto com um botão de increment e decrement, o problema é que quando activo a caixa de baixo se adicionar itens em cima eles ficam contando em baixo... segue o code:

<script type="text/javascript">
function id( el ){
    return document.getElementById( el );
}

function check(checkbox){


 		if(checkbox.checked){	
		 alert('increment'+ checkbox.id);	 	
	
		 /*quantidade*/
		
		 /*increment button*/
		 id('increment'+ checkbox.id).onclick = function(){
	
		 if( id('text-field'+ checkbox.id).value < max_unit)
		 valor+=1;
		 id('text-field' + checkbox.id).value = valor;	
	
		 document.getElementById('qnt_'+checkbox.id).innerHTML= valor; 

		 }
		 
	 	 /*decrement button*/
		 id('decrement'+ checkbox.id).onclick = function(){
		 if( id('text-field'+ checkbox.id).value > 1)
		 valor-=1;
		 id('text-field' + checkbox.id).value = valor;
		}
		
		
		 
}
/*end if*/
		else{
		valor=1;
		document.getElementById('decrement'+checkbox.id).disabled=true;
	}
	
}  

Compartilhar este post


Link para o post
Compartilhar em outros sites


<script type="text/javascript">

function id( el ){

return document.getElementById( el );

}

 

function check(checkbox){

 

 

if(checkbox.checked){

alert('increment'+ checkbox.id);

 

/*quantidade*/

 

/*increment button*/

id('increment'+ checkbox.id).onclick = function(){

 

if( id('text-field'+ checkbox.id).value < max_unit)

valor+=1;

id('text-field' + checkbox.id).value = valor;

 

document.getElementById('qnt_'+checkbox.id).innerHTML= valor;

 

}

 

/*decrement button*/

id('decrement'+ checkbox.id).onclick = function(){

if( id('text-field'+ checkbox.id).value > 1)

valor-=1;

id('text-field' + checkbox.id).value = valor;

}

 

 

 

}

/*end if*/

else{

valor=1;

document.getElementById('decrement'+checkbox.id).disabled=true;

}

 

}

</script>

<?php

for($k=1; $k<5;$k++){

 

<input type="checkbox" id="'.$k.'" value="10" onclick="check(this);"/>

<button type="button" class="menos" id="decrement'.$k.'">-</button>

<input type="text" class="txt" value="1" disabled="disabled" id="text-field'.$k.'"/>

<button type="button" class="mais" id="increment'.$k.'">+</button>

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, continuo aqui com esse probleminha,

Deuses do javascript me ajudem por favor estou entrando na paranoia, bom meus amigos o problema esta quando as caixas de check estiverem verificadas permite incrementar e decrementar o problema é que conserva valores em memória e ao incrementar ele incrementa ao ultimo valor contado...

Código reposto:

<script type="text/javascript">
var max_unit,valor;
function id(el){
    return document.getElementById(el);
}
valor=1;
max_unit=5;
	function check(checkbox){
 	if(checkbox.checked){	
	 	
	
		 /*quantidade*/
		
		 /*increment button*/
		 id('increment'+ checkbox.id).onclick = function(){
		 if( id('text-field'+ checkbox.id).value < max_unit)
		 valor+=1;
		 id('text-field' + checkbox.id).value = parseInt(valor);	
		 }
		 
	 	 /*decrement button*/
		 id('decrement'+ checkbox.id).onclick = function(){
		 if(id('text-field'+ checkbox.id).value > 1)
		 valor-=1;
		 id('text-field' + checkbox.id).value = parseInt(valor);
		}
		
		
		 
}
/*end if*/
		else{
		valor=1;
		document.getElementById('decrement'+checkbox.id).disabled=true;
	}
	
}  
</script>
<?php
for($k=1; $k<5;$k++){

echo'<input type="checkbox" id="'.$k.'" value="10" onclick="check(this);"/>
<button type="button" class="menos" id="decrement'.$k.'">-</button>
<input type="text" class="txt" value="1" size="4" disabled="disabled" id="text-field'.$k.'"/>
<button type="button" class="mais" id="increment'.$k.'">+</button> 
<div style="clear: both;"></div>';
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utiliza um array.

Veja o exemplo: http://jsfiddle.net/Lem03t79/1/

Copiei e coleis eu código. Apenas adicionei o array para receber os valores. Não consegui captar o efeito que marcar desmarcar o checkbox causa, mas, enfim. Está funcionando, utilizando array.. hehe

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.