Prijs berekening

Status
Niet open voor verdere reacties.

koalabreda

Gebruiker
Lid geworden
12 jun 2009
Berichten
19
Beste allemaal,

Ik zit met een vraagje en hoop dat jullie mij kunnen helpen. Om te beginnen moet ik zeggen dat ik weinig ervaring heb met javascript. Ik gebruik veel scripts van anderen maar ben zelf nu een beetje aan het proberen om er een te schrijven.

Volgens mij zit ik met een simpel iets maar ik kom er niet aan uit :confused:.

Het resultaat dat ik zoek is als volgt.

Bezoekers van de site vullen een getal in (aantal smsjes) in een formulier veld. Deze ziet er als volgt uit:

<input type="text" name="aantalsms" id="aantalsms" />

Vervolgens wil ik dat er door middel van document.write een prijs op het scherm zichtbaar is. Echter moet deze prijs te zien zijn zonder dat er op een 'bereken' button gedrukt hoeft te worden. Ik heb tot nu toe:

Code:
<SCRIPT LANGUAGE="JavaScript"> 
function prijsberekening(aantal, prijs) 
{ 
    if (aantal.value < 101)
    prijs.value = aantal.value * 0,09; 
    if else (aantal.value < 201)
    prijs.value = aantal.value * 0,07;
    else
    prijs.value = aantal.value * 0,05;
}  
</script>

Eerlijk gezegd zit ik nu al vast...
Iemand die me op weg wilt helpen?

Mvg, Paul
 
Vervolgens wil ik dat er door middel van document.write een prijs op het scherm zichtbaar is.

Dat kan niet, document.write wordt uitgevoerd op het moment dat de site wordt geladen. Wat wel kan is gebruik maken van een div/span en innerHTML.

Dat wordt dan zoiets:
HTML:
<snip>
function prijsberekening(aantal) 
{
    var prijs = document.getElementById('prijs');
    if (aantal.value < 101)
    prijs.innerHTML = aantal.value * 0.09; 
    else if (aantal.value < 201)
    prijs.innerHTML = aantal.value * 0.07;
    else
    prijs.innerHTML = aantal.value * 0.05;
}
<snip>
<input type="text" name="aantalsms" id="aantalsms" onKeyUp="prijsberekening(this)"/>
Prijs:<span id="prijs"></span>
<snip>

Ik heb het niet getest, maar zo zou het moeten werken.

[edit]Ik heb het nu wel getest en na het veranderen van de komma's in 0,09; 0,07 en 0,05 in punten (zoals nu hierboven) werkt het.[/edit]
 
Laatst bewerkt:
Heel erg bedankt supersnail. :thumb:
Ik heb hem werkende.
Nog een klein probleemje, hoe kan ik ervoor zorgen dat er altijd afgerond wordt op twee decimalen?

ik heb wel de functie hiervoor gevonden volgens mij: Math.round() maar weet niet hoe ik deze hierin moet verwerken.
 
Wat is <snip> ?

Maarre, afronden op twee decimalen heeft JavaScript geen ingebouwde functie voor. Wat meestal wordt gedaan, is:

[JS]
Math.round( waarde * 100 ) / 100;
[/JS]

In jou voorbeeld zou je dan dus kunnen gebruiken:

[JS]
prijs.innerHTML = ( Math.round ( aantal.value * 5 ) / 100 );
[/JS]

Overigens werkt dat niet als je het laatste cijfer een 0 is, die zal dan worden weggelaten. Daar kun je eventueel nog een functie voor schrijven.
 
Oeh, das wel een beetje slecht van me... :p Kon me die functie niet herinneren. ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan