Decimalen

Status
Niet open voor verdere reacties.

feijtel.d

Gebruiker
Lid geworden
12 feb 2001
Berichten
17
Hallo Allemaal,

Ik heb een bestelformulier met diverse producten en prijzen, nu wil ik graag dat de uitkomst van de berekening met 2 decimalen achter de komma wordt getoont in het totaal. weet dat ik de volgende functie .toFixed(2) moet gebruiken, maar hoe en waar geen idee. Is er iemand die mij verder kan helpen.
Code:
<script>
function calculateRadio(){
var op1=document.getElementsByName('form[radio1]');
var op2=document.getElementsByName('form[radio2]');
var op3=document.getElementsByName('form[radio3]');
var op4=document.getElementsByName('form[radio4]');
var op5=document.getElementsByName('form[radio5]');
var op6=document.getElementsByName('form[radio6]');
var op7=document.getElementsByName('form[radio7]');
var op9=document.getElementsByName('form[radio9]');
var op11=document.getElementsByName('form[radio11]');
var op12=document.getElementsByName('form[radio12]');
var op13=document.getElementsByName('form[radio13]');
var op14=document.getElementsByName('form[radio14]');
var op15=document.getElementsByName('form[radio15]');
var result=document.getElementById('Total');
result.value=0;
result.value=parseInt(result.value);
for(i=0;i<op1.length;i++)
if(op1[i].checked) result.value=parseInt(result.value)+parseInt(op1[i].value);
for(i=0;i<op2.length;i++)
if(op2[i].checked) result.value=parseInt(result.value)+parseInt(op2[i].value);
for(i=0;i<op3.length;i++)
if(op3[i].checked) result.value=parseInt(result.value)+parseInt(op3[i].value);
for(i=0;i<op4.length;i++)
if(op4[i].checked) result.value=parseInt(result.value)+parseInt(op4[i].value);
for(i=0;i<op5.length;i++)
if(op5[i].checked) result.value=parseInt(result.value)+parseInt(op5[i].value);
for(i=0;i<op6.length;i++)
if(op6[i].checked) result.value=parseInt(result.value)+parseInt(op6[i].value);
for(i=0;i<op7.length;i++)
if(op7[i].checked) result.value=parseInt(result.value)+parseInt(op7[i].value);
for(i=0;i<op9.length;i++)
if(op9[i].checked) result.value=parseInt(result.value)+parseInt(op9[i].value);
for(i=0;i<op11.length;i++)
if(op11[i].checked) result.value=parseInt(result.value)+parseInt(op11[i].value);
for(i=0;i<op12.length;i++)
if(op12[i].checked) result.value=parseInt(result.value)+parseInt(op12[i].value);
for(i=0;i<op13.length;i++)
if(op13[i].checked) result.value=parseInt(result.value)+parseInt(op13[i].value);
for(i=0;i<op14.length;i++)
if(op14[i].checked) result.value=parseInt(result.value)+parseInt(op14[i].value);
for(i=0;i<op15.length;i++)
if(op15[i].checked) result.value=parseInt(result.value)+parseInt(op15[i].value);}  
</script>

alvast bedankt,

Dennis
 
Als je veel dingen opschrijft en het is steeds hetzelfde, weet je dat je iets fout aan het doen bent! ;)

Voor het ophalen van elementen (regel 2 tot 14): waarom niet loopen? De resultaten passen mooi in een array:

[js]var i, opX = [];

for(i = 1; i < 16; i++)
{
opX = document.getElementsByName('form[radio' + i + ']');
}[/js]

hetzelfde geld voor je if(checked...) gedoe. Omdat je daar al in een array zit moet je een dubbele for... gebruiken..


Nu, je eigenlijke vraag: maak een variabele aan waar je tijdelijk de uitkomst in opslaat, daarna ga je pas met de .value van je resultaat-element aan de gang. Ofwel:

[js]
// 1. haal form elementen op (zie code hierboven)
// 2. loop over items in deze elementen (dubbele for!) en sla resultaat op in var
// 3. .toFixed() de var en gooi deze in het element
[/js]




:thumb:
 
ik ga er eens mee stoeien, des te meer leer je er weer van. :D
Bedankt voor het zetje in de goede richting.
 
Geen probleem! Als je er niet uitkomt gewoon je code (wat je tot dan toe hebt) posten en je vraag erbij :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan