Avatar billede kak Nybegynder
16. august 2001 - 15:46 Der er 6 kommentarer og
2 løsninger

Diverse JavaScript spørgsmål

Jeg har lavet et script som bla. ganger to felter med hinanden og skriver resultatet i det tredje. Koden til det ser således ud:
felt1 = (document.form.felt1.value)
felt2 = (document.form.felt2.value)
document.form.total1.value = parseInt(felt1)*parseInt(felt2)
Men med \"parseInt\" er det jo kun heltal der regnes med, og jeg vil gerne regne med decimaler. Kan det lade sig gøre?

Desuden viser \"total1\" ordet: \"NaN\" indtil der er tal i både felt1 og felt2. Kan det lade sig gøre, at der i stedet bare står 0 eller evt. ingenting?
Avatar billede milpoer Nybegynder
16. august 2001 - 15:48 #1
du kan hvad NaN angår lave en if sætning der går skrevet på dansk..

hvis total1 = NaN så er total1=0

forstår du ?
Avatar billede kak Nybegynder
16. august 2001 - 16:07 #2
Ja, det virker. Dog løser det ikke alle mine problemer, for jeg har et felt for neden, som lægger alle totalerne sammen. Men det vil først regne totalen ud når ALLE felter er udfyldt. Ikke hvis man kun udfylder et eller to felter?! Lidt underligt, eftersom der jo i hvert fald står 0 i dem alle.

Hvad med decimal-udregningen? Nogen forslag?
Avatar billede milpoer Nybegynder
16. august 2001 - 16:11 #3
skal ALLE felter ganges sammen ?
Avatar billede kak Nybegynder
16. august 2001 - 16:15 #4
De skal bare lægges sammen, men jeg har selv løst problemet. Først fandt den jo værdien og lagde den ned i en variabel. Så ændrede den feltet til 0, og dermed var variablen jo stadig \"NaN\" som der ikke kan regnes med.
Så jeg har tilføjet en linie, hvor variablen kigger på feltet en gang til.

Så mangler jeg \"bare\" at regne med brøker! ;-)
Avatar billede tknudsen Nybegynder
16. august 2001 - 16:38 #5
du kan parse strengen som decimal tal via parseFloat()

eneste problem kan være din decimal seperator, men det kan du løse ved at konvertere ent evt ugyldig seperator med en gyldig.
Avatar billede tknudsen Nybegynder
16. august 2001 - 16:42 #6
Jeg er ikke klar over om der kun er een gyldig seperator i javascript (.)

På min maskine er der i regional settings valgt , som decimal seperator, men alligevel er det kun strenge med . som seperator, der bliver parset som decimal tal.
Avatar billede jakoba Nybegynder
16. august 2001 - 18:47 #7
felt1 = \"0\"+document.form.felt1.value; // med \"0\"+... sikrer vi at der altid kommer
felt2 = \"0\"+document.form.felt2.value; // et tal ud af det, aldrin NaN.
document.form.total1.value = parseFloat(felt1)*parseFloat(felt2)

parseFloat( ) læser decimaltal. kusk at decimalpunktet er et punktum og ikke et komma, det kan give problemer når danskere indtaster tal med decimaler.
Brug evt:
felt1 = felt1.replace( /,/, \".\" ); // lav komma til punktum.

mvh JakobA
Avatar billede kak Nybegynder
16. august 2001 - 18:59 #8
Tak for det. Nu virker det hele (og det er ganske rigtig nødvendigt, at lave \",\" og til \".\"
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