Hallo,


Ben bezig met een formulier waar ik een veld heb met een geldbedrag, met javascript laat ik automatisch 2 decimalen plaatsen met de to fixed functie.
Bedragen met een punt ipv een komma worden door de replace functie hersteld naar een komma.

Codepen

Het probleem waar ik tegen aan loop is het volgende:
Voer ik 10 in dan word dit 10,00
voer ik 10.50 in dan word dat 10,50
Dit gaat dus goed!

Voer ik een bedrag in waar ik zelf de komma al heb geplaatst (10,50) dan maakt hij er 10,00 van.
wat gaat er mis en moet ik aanpassen dat het wel goed gaat?

Gr. Jop
Zoiets?

function setDecimal(input) {
  input.value = parseFloat(input.value.replace(",", ".")).toFixed(2).replace(".", ",");
}

Dit kan uiteraard problemen opleveren met geformatteerde getallen als 1.000,00 maar dat was de vraag niet.

Overigens, de reden dat de eerste replace nodig is, is omdat parseFloat getallen uit een string haalt tot er een niet-getal voorkomt, dus de komma. Wanneer je 10,50 hebt haalt parseFloat er 10 uit.
Thanks voor de reactie, hiermee kan ik wel even vooruit. Ik kan natuurlik voor de duizendtallen de punt blokkeren zodat dat niet misgaat :)

Reageren