Avatar billede mickill Nybegynder
09. marts 2005 - 13:11 Der er 7 kommentarer og
1 løsning

Udregn samlet pris

Hej

Jeg har fået fat i et javascript her på eksperten, som jeg bruger til at udregne en samlet pris, udfra 3 tekstfelter.
Problemet er bare at hvis jeg vil bruge komma f.eks. 198,95
får jeg i mit felt med samlet pris: NaN

Mit script:

function regn() {
f = document.form1;
f.samletpris.value = +f.belob1.value + +f.belob2.value + +f.belob3.value;
}

/Mickill
Avatar billede jih Nybegynder
09. marts 2005 - 13:22 #1
NaN = Not a Number.. prøv med 198.95 istedet for 198,95... se om det virker..
Avatar billede mickill Nybegynder
09. marts 2005 - 13:40 #2
det virker med et punktum, men kan det ikke lade sig gøre at få det til at virke med et komma ?
Avatar billede jih Nybegynder
09. marts 2005 - 13:57 #3
hmm... har ofte haft det samme problem, men jeg har aldrig fundet en løsning, så jeg har bare skrevet på hjemmesiden selv at den bruger engelsk format, hvor der bruges punktum istedet for komma...
Avatar billede olebole Juniormester
09. marts 2005 - 15:25 #4
<ole>

JavaScript er et internationalt (engelsk baseret) sprog, så det bruger decimal punktum. Det kan du ikke gøre så meget ved. Til gengæld kan du lave en lille hjælpefunktion:

function getDeci(num) {
  return num.replace(",", ".");
}

- og så kan du kalde med:

f.samletpris.value = getDeci(f.belob1.value) + getDeci(f.belob2.value) + getDeci(f.belob3.value);


/mvh
</bole>
Avatar billede olebole Juniormester
09. marts 2005 - 15:28 #5
Evt:

function getDeci(num) {
  return num.replace(",", ".");
}
function getDkDeci(num) {
    return num.replace(".", ",");
}

- og så:

f.samletpris.value = getDkDeci( getDeci(f.belob1.value) + getDeci(f.belob2.value) + getDeci(f.belob3.value) );

Så vil resultatet blive skrevet ud med decimal-komma - mens alle beregninger foretages med decimal-punktum ... uanset, hvad brugeren måtte skrive  ;o)
Avatar billede olebole Juniormester
09. marts 2005 - 15:33 #6
Der er flere muligheder  :)
Du kan også skrive:
    <input id="hest" type="text" onchange="this.value=this.value.replace(',','.')">

- og hvis det gælder mange felter:

function myReplace(elm) {
    elm.value = elm.replace(",", ".");
}

    <input id="hest" type="text" onchange="myReplace(this)">

På den måde vil alle decimal-kommaer blive rettet til decimal-punktum, efterhånden som tallene bliver skrevet
Avatar billede mickill Nybegynder
11. marts 2005 - 10:48 #7
Tak olebole

det var lige det jeg skulle bruge.

Lægger du et svar?

/Mickill
Avatar billede olebole Juniormester
11. marts 2005 - 11:55 #8
... s'gerne  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester