[JS] Checkbox-items in array

Pagina: 1
Acties:

  • Ray_
  • Registratie: November 2003
  • Laatst online: 22:42
Ik ben al een aardig tijdje aan het stoeien met een stukje javascript.
De gebruiker kan items aankruisen en het script berekent de totale kosten.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function count()
{
 if (calcA.item1.checked){
   var item1 = 72;
 } else {
   var item1 = 0;
 }
 if (calcA.item2.checked){
   var item2 = 173;
 } else {
   var item2 = 0;
 }
enz...

 // Bereken totaalbedrag
 document.calcA.payA.value = item1 + item2 + item3 + item4 + item5 + item6 + item7 + item8;

 document.calcB.payB.value = item9 + item10 + item11 + item12 + item13 + item14 + item15 + item16;
 document.calcC.payC.value = item17 + item18 + item19 + item20 + item21 + item22 + item23 + item24;

 document.calcD.payD.value = item25 + item26 + item27 + item28 + item29 + item30 + item31 + item32
}


Dit is nogal een bende...ik wil het nu in een array zetten, zodat het er wat overzichtelijker uit komt te zien:
code:
1
2
3
4
5
var items = new Array()
items[0] = 72
items[1] = 173
items[2] = 70
enz...

...maar ik heb geen idee hoe ik sommige arrays wel en sommige niet mee zou kunnen laten rekenen.
Ik ben geen JS-genious en met de search kwam ik ook niet soortgelijke problemen tegen.
Misschien dat hier iemand me kan helpen?

edit: en als iemand dit ff naar webdesign & graphics zou kunnen verplaatsen ben ik u dankbaar :)

[ Voor 6% gewijzigd door Ray_ op 04-01-2006 16:13 ]


Verwijderd

Zal wel even een demo stukje neerplempen.. zei de gek


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<script type="text/javascript">
function bereken(){
    var form = document.forms['formuliernaam'];
    var collection = form.elements['accessoires'];
    
    var total = 0;
    var i = collection.length;while(i--){
        if(collection[i].checked){
            total += parseFloat(collection[i].value);
            
        }
    }
    
    if(total <= 0){
        alert('Eerst wat kopen');
        return false;
    }else{
        alert('Bedankt de kosten zijn: ' + total + " euro");
        return true;
    }
}
</script>

<form method="post" name="formuliernaam" onsubmit="return bereken()">
    
    <label for="accessoire_1">Accessoire 1</label><input id="accessoire_1" name="accessoires" type="checkbox" value="10.95" />
    <label for="accessoire_2">Accessoire 2</label><input id="accessoire_2" name="accessoires" type="checkbox" value="50.00" />
    <label for="accessoire_3">Accessoire 3</label><input id="accessoire_3" name="accessoires" type="checkbox" value="4.50" />
    <label for="accessoire_4">Accessoire 4</label><input id="accessoire_4" name="accessoires" type="checkbox" value="1.1234,95" />  
    
    <input type="submit" value="verstuur">
        
</form>

[ Voor 118% gewijzigd door Verwijderd op 04-01-2006 16:23 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Ray_
  • Registratie: November 2003
  • Laatst online: 22:42
Hmm..dat is niet precies wat ik bedoel eigenlijk.
Ik wou de waarden in een array stoppen. Jij gooit ze nu meteen bij de checkboxes in. Kan ook, maar niet zoals ik t graag wil.

Verwijderd

Als je een lijst van mogelijke opties hebt dan heb je ook een lijst met evenzoveel tarieven.

Ik zie niet vanuit hier wat die diverse A - D doen, dus je ontkomt niet aan if else constructies.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var itemTarife = [10,20,30,100,50,9000,5.95,10,etc.. ];
var aa = 0;

var itemCount = 32;
var i=itemCount;while(i--){
    if(itemCount <= 1 && itemCount >= 8){
        var aa += calcA['item'+i].checked ? itemTarife[i] : 0;
    }
    etc.. 
}

document.calcA.payA.value = aa;
document.calcB.payB.value = bb;
document.calcC.payC.value = cc;
document.calcD.payD.value = dd;

[ Voor 4% gewijzigd door Verwijderd op 04-01-2006 17:10 ]


Verwijderd

Zeg topicstarter, hoe is het afgelopen ? ..

  • Ray_
  • Registratie: November 2003
  • Laatst online: 22:42
Ik was d'r even weg van ;)

Ik ben in ieder geval een stukje verder maar loop nog wel tegen wat problemen aan, hoop ik snel opgelost te hebben.

Iig bedankt.
Pagina: 1