Avatar billede rane Nybegynder
19. juli 2006 - 09:46 Der er 3 kommentarer og
1 løsning

Erstatning af NaN

Jeg har en ordentlig stak radiobuttons og checkboxes. Når man klikker på dem, beregner den automatisk værdien af alle radiobuttons til input-feltet "textfield1", mens en anden funktion beregner den sammenlagte værdi af alle checkboxes i input-feltet "ialt".

Dvs. der er 2 funktioner der ved klik automatisk skifter value på 2 input-felter. 

Har så prøvet at lave en funktion der automatisk lægger de 2 input-felter til hinanden:

function beregndog() {

document.frokostformular.samlet.value) = parseInt(document.frokostformular.textfield.value) + parseInt(document.frokostformular.ialt.value);

---
MEN...første gang jeg klikker på en radiobutton, giver den 3. inputfelt (samlet) en værdi på NaN.  Nok fordi man ikke har valgt en checkbox endnu. Vælger jeg efterfølgende checkboxen, beregner den det fint derfra.

Hvordan får jeg erstattet NaN værdien i 3. inputfelt med værdien af den først-klikkede knap?
Avatar billede fennec Nybegynder
19. juli 2006 - 10:07 #1
lav et isNaN tjek:

if(!isNaN(document.frokostformular.textfield.value) && !isNaN(document.frokostformular.textfield.value))
  document.frokostformular.samlet.value) = parseInt(document.frokostformular.textfield.value) + parseInt(document.frokostformular.ialt.value);
Avatar billede rane Nybegynder
19. juli 2006 - 10:23 #2
Tanks, virker perfekt. Men typisk hvor løsningen af et problem bliver fulgt op af et nyt problem.  Hvis man refresher siden i Firefox, så gemmer den nemlig værdierne i formen, mens beregningsscriptet nulstilles. Så man kan fukse temmelig meget hvis man bruger Firefox :-(
Avatar billede fennec Nybegynder
19. juli 2006 - 10:43 #3
Jeg er klar over FF problematikken med at den husker formindtastningerne, nå man trykker refresh/F5. Det er specielt træls under udvikling, hvor man gerne kræver en reset form under test.

måden at komme uden om det er ved at resette formen hver gang:
<body onLoad="document.dinForm.reset();">
Avatar billede nielle Nybegynder
19. juli 2006 - 18:19 #4
> Så man kan fukse temmelig meget hvis man bruger Firefox :-(

Husk på at man *altid* skal validere inputet på serverside uanset hvad man ellers laver clientside. Clientside beregninger og valideringer må kun fungere som en hjælp til brugeren, og du må aldrig stolle blindt på dem fra siden der submittes til.

Joe the Hacher kan nemlig altid lave sin helt egen form og submitte den hvis han ønsker at angribe dit site.
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