Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:/applications/core/interface/imageproxy/imageproxy.php?img=https://www.dropbox.com/s/nc490yp2hxyoupl/toze.png?dl=0&key=c9b39b78dbbd54d41a75c18079f7fa8d5b4a2c90442b57ab05b9111a4cb190d0" alt="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;
}
}<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>
}
?>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>';
}
?>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
Rafael Sirotheau, obrigado, você manda bem.
Poste o html.