Gå til innhold

js nybegynner hjelp


Anbefalte innlegg

jeg har laget denne kalkulatoren:

http://www.morganwaage.com/calculator.html

og prøvd med litt forskjellige javascript uten å lykkes.

 

alt jeg vil er at det tallet man putter inn i de to øverste feltene legges sammen når man trykke på = knappen og resultatet vises i det nederste feltet.

 

her er funksjonen jeg har nå:

function calculate(){
var int1 = document.form1.field1.value;
var int2 = document.form1.field2.value;

var int3 = eval(int1 + int2); 
}

den regner sikkert ut riktig men jeg får ikke vist resultatet...???

 

noen som kan hjelpe meg med dette?

Lenke til kommentar
Videoannonse
Annonse
Sleng på

document.form1.field3.value=int3

Så får du fram «int3» i det nederste feltet.

 

Tviler på at «kalkuratoren» vil rekne rett, da koden din legger sammen to strenger.

heheh! takk for svar!

hvordan får jeg den til å legge de sammen da??

trodde eval() gjorde det jeg....

Endret av demiurgen
Lenke til kommentar

Du må validere og typekonvertere strengen til integer.

 

Du konverterer strenger til integer med funksjonen Number(streng). Denne vil returnere "NaN" (Not a Number) om strengen ikkje kan konverterast til tal.

function calculate(){
var int1 = Number(document.form1.field1.value);
var int2 = Number(document.form1.field2.value);
document.form1.field3.value=int1 + int2
}

Ev. exception om int1 eller int2 ikkje er ett tal.

Endret av nercix
Lenke til kommentar

Jeg må nesten bare nevne at å bruke eval her, er som å skyte spurv med kanon. Eval eksekverer en streng som kode og bruker mye mer ressurser fordi den må starte opp en egen kompilering, mer om eval her: http://www.w3schools.com/jsref/jsref_eval.asp og http://blogs.msdn.com/ericlippert/archive/...1/01/53329.aspx

 

Jeg har brukt eval et par ganger, men kunne sikkert unngått det om jeg hadde vært smartere. Kan du unngå eval er det det beste!

 

Edit: Kanskje grunnen til at du bruker eval er at du ønsker å erstatte plusstegnet med en variabel som inneholder et tegn, det kan være en valid grunn for å bruke eval. I såfall skulle vel utregningen vært: var int3 = eval(int1 + '+' + int2);

Endret av magicgunnar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...