Avatar billede torotune Nybegynder
14. november 2006 - 12:07 Der er 5 kommentarer og
1 løsning

Hjælp til simpel function

Hej, jeg kender ikke så godt til JavaScript, så ville høre om jeg kunne få lidt hjælp til bare at lægge to tal sammen :-)

Jeg har en button og en tekstbox. Når jeg trykker på knappen skal der læggges 100 til tallet i tekstboxen:

function Add100() {
var TxtAmount = document.getElementById('<%= TxtAmount.ClientID %>');
TxtAmount.value += '100';
}

Men den behandler det som en string og kankatinerer det. Hvordan laver man det til en beregning i JS?
Avatar billede olebole Juniormester
14. november 2006 - 13:20 #1
<ole>

function Add100() {
    var TxtAmount = document.getElementById('<%= TxtAmount.ClientID %>');
    TxtAmount.value += 100;
}

/mvh
</bole>
Avatar billede torotune Nybegynder
14. november 2006 - 13:54 #2
Det hjælper ikke, den lægger dem først sammen hvis jeg laver:

n1 = parseFloat(TxtAmount.value);
n2 = parseFloat(100);

Sum = n1 + n2;
TxtAmount.value = Sum;

Dog virker det ikke helt hvis der er komma med i TxtAmount.value som decimalseperator, punktum gør. Er ovenstående uhensigtsmæssigt?
Avatar billede olebole Juniormester
14. november 2006 - 15:23 #3
Tværtimod, det er den helt sikre måde at gøre det på. Ang. decimal-separator, kan du gøre sådan (JavaScript kan som de fleste andre sprog kun anvende den 'internationale' separator - punktum):

TxtAmount.value = (TxtAmount.value+"").replace(",", ".");
n1 = parseFloat(TxtAmount.value);
n2 = parseFloat(100);
Sum = n1 + n2;
TxtAmount.value = Sum;

Denne lidt sære konstruktion: (TxtAmount.value+"") - bruges for at sikre, at 'tallet' er en streng. Replace-metoden duer nemlig ikke på tal, men på strenge  ;o)

I stedet for:
    n1 = parseFloat(TxtAmount.value);

- kunne du også skrive:
    n1 = TxtAmount.value * 1;  // Shorthand 'converter', der konverterer streng til tal
Avatar billede torotune Nybegynder
16. november 2006 - 18:18 #4
Hej Ole!

Stærkt nok, jeg var faktisk lige stødt på et eksempel hvor der blev brugt de der udtryk du viser, og hvor jeg ikke helt forstod logikken i det :-)

altså * 1
og + ""

Men i hovedtræk laver jeg streng om til tal,
bytter , ud med .
foretager beregningen
bytter . ud med ,
fylder resultatet i min box?

Du er velkommen til at lægge et svar!
Avatar billede olebole Juniormester
20. november 2006 - 13:17 #5
Fint, du har fanget idéen  ;o)
Avatar billede torotune Nybegynder
20. november 2006 - 13:34 #6
Jep, takker for hjælpen! :-)
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