2010-11-09 10 views
0

bâtiment Im une forme simple où Im essayant de transmettre des valeurs de cases à cocher ...valeurs Pass de cases à cocher en utilisant Javascript

<div class="checkboxclass"> 
<input name="form[paperdesign][]" value="150" id="paperdesign0" type="checkbox"> 
<label for="paperdesign0">text 1</label> 
<input name="form[paperdesign][]" value="100" id="paperdesign1" type="checkbox"> 
<label for="paperdesign1">text 2</label> 
<input name="form[paperdesign][]" value="50" id="paperdesign2" type="checkbox"> 
<label for="paperdesign2">text 3</label> 
<input name="form[paperdesign][]" value="50" id="paperdesign3" type="checkbox"> 
<label for="paperdesign3">text 4</label> 
</div> 

... en utilisant cette fonction:

function calculate(){ 
    var sela=document.querySelectorAll("div.checkboxclass input"); 
    resultsel.value=0; 
    resultsel.value=parseInt(resultsel.value); 
    for(i=0;i<sela.length;i++) 
     resultsel.value=parseInt(resultsel.value)+parseInt(sela[i].value); 
} 

Et ça marche OK à part le fait que ça passe toutes ces valeurs en même temps.

Pourrait venir s'il vous plaît aidez-moi sur celui-ci?

Merci beaucoup à l'avance

Dom

+0

Que voulez-vous dire par « il est ce passage toutes les valeurs de ce même temps »? – palswim

Répondre

1

Si je comprends bien la question, vous voulez dire que vous voulez seulement inclure les valeurs pour les éléments sélectionnés. Dans ce cas, vous devriez être en mesure d'utiliser le sélecteur :checked:

var sela=document.querySelectorAll("div.checkboxclass input:checked"); 
+0

Petites choses et m'a fait tellement heureux! Merci beaucoup! – Dom

+0

@Dom - pas de problème. Marquez-le comme une réponse acceptée s'il répond à votre question –

1

Je pense que vous voulez uniquement calculer les cases à cocher sélectionnés.

Vous devez vérifier la sélection des cases à cocher:

function calculate(){ 
    var sela=document.querySelectorAll("div.checkboxclass input"); 
    var total = 0; 
    for(i=0;i<sela.length;i++) { 
     if(sela[i].checked) 
      total += parseInt(sela[i].value); 
    } 
    resultsel.value = total; 
}