Ga naar inhoud

Javascript vraagje


Aanbevolen berichten

Hallo, Ik heb het volgende probleem: Ik heb een javascript met een aantal strings er in. Deze strings zien er bv zo uit : "document.form1.som1.value","document.form1.som3.value" e.d. Nu wil ik de waardes van deze velden benaderen en er een berekening mee maken, maar het probleem is dat hij dan de strings samenvoegd, en niet de waardes die deze velden bevatten opteld. Wie weet hoe ik dit op kan lossen ?? mvgr, Niels
Link naar reactie
Converteer de values van string naar een numerieke waarde dmv parseFloat. Het probleem ontstaat doordat er twee strings bij elkaar 'opgeteld' worden ook al zijn deze strings numerieke waarde. vb.: var Totaal = parseFloat(document.form1.som1.value)+parseFloat(document.form1.som3.value); Denk er wel aan dat de waarden in de velden eerst getest worden op numeriek. Anders zal de parseFloat hierbij niet werken en resulteren in NaN (Not a Number)
Link naar reactie
Dat met eval werkt goed, dank je. Nou zit ik nog met het volgende probleem: ik heb dus een aantal van die velden in m'n pagina staan, maar dat is afhankelijk van wat er in de database staat. Soms heb ik dus bv. som1, som2, som3, som6, som7 e.d ik laat al de waardes van deze velden met een for lus optellen waarbij elke keer het getal achter som met 1 opgehoogd wordt. Nou is het geval zo dat hij stopt als hij een veld niet kan vinden, bv. som4 in het bovenstaande rijtje. Heeft iemand hier wat op ??? dit is de code die ik nu heb : for(j=1;j<=last;j++) { veld=eval("document.form1.som"+j+".value"); totaal+=veld; alert(j+" "+veld); }
Link naar reactie
Je kan imho beter de elements collection van het form nalopen (ipv telkens een [i:ef19eaf627]eval()[/i:ef19eaf627] doen) en igv een match op de name de optelling doen. bijv: [code:1:ef19eaf627] var iSum = 0; var oFormElements = document.forms[0].elements; for (var i = 0; i < oFormElements.length; i++) { if (/^som\d+$/.test(oFormElements[i].name) && !isNaN(oFormElements[i].value)) { iSum += parseFloat(oFormElements[i].value); } } alert(iSum); [/code:1:ef19eaf627]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...