Avatar billede lund_dk Praktikant
23. august 2006 - 19:40 Der er 10 kommentarer og
1 løsning

Beregn point .

Hej

Håber nogen kan hjælpe mig.
Jeg har denne form hvor man vælger forskellige værdier, og skal kunne regne dem sammen til sidst.

Bemærk kriterier i punkt 3.

Nogen som  kan hjælpe mig med at ligge formen sammen?

1. Er du:<br/>
<select name="Koen">
<option value="7">Kvinde</option>
<option value="15">Mand</option>
</select>
<br/><br/>


2. Hvor gammel er du?:<br/>
<select name="Alder">
<option value="5">18 - 20</option>
<option value="4">21 - 35</option>
<option value="3">36 - 50</option>
<option value="2">51 - 65</option>
<option value="1">65 - ?</option>
</select>
<br/><br/>


3. Hvad vejer du?:<br/>
Tag det første tal i din vægt, hvis den 2-cifret og de første 2 tal, hvis den er 3-cifret.
F.eks. hvis du vejer 84 kg, skriver du 8, hvis det er 188 kg, skriver du 11 i feltet.
<input type="text" name="Vaegt" />
<br/><br/>


4. Hvor høj er du?:<br/>
<select name="Hoejde">
<option value="1">Under 160 cm</option>
<option value="2">Over 160 cm</option>
</select>
<br/><br/>

5. Hvor aktiv er du?:<br/>
<select name="Aktiv">
<option value="0">Mest stillesiddende</option>
<option value="2">Ofte siddend, men mest stående</option>
<option value="4">I konstant bevægelse</option>
<option value="6">Fysisk hårdt arbejde</option>
</select>
<br/><br/>

6. Vil du:<br/>
<select name="Maal">
<option value="0">Tabe dig</option>
<option value="4">Beholde nuværende vægt</option>
</select>
<br/><br/>

<input type="submit" value="Beregn point" />

Resultat: xx point
Avatar billede terrak Nybegynder
23. august 2006 - 20:18 #1
Jeg forstår godt hvordan 84 bliver til 8, men hvordan bliver 188 til 11? Skulle det ikke være 18 hvis man tager de to første cifre?

Hvis det er sådan det skal virke, så prøv dette:

----

<script type="text/javascript">

function calcsum() {
var myform = document.getsum;
var myVaegt = document.getsum.Vaegt.value.substr(0,document.getsum.Vaegt.value.length-1);
var totalsum = parseInt(document.getsum.Koen.value) + parseInt(document.getsum.Alder.value) + parseInt(myVaegt) + parseInt(document.getsum.Hoejde.value) + parseInt(document.getsum.Aktiv.value) + parseInt(document.getsum.Maal.value);
return totalsum;
}

</script>

----

Koden du allerede har skrevet, skal du have ind i en form:
<form name="getsum" onsubmit="alert(calcsum());return false;">
..din kode..
</form>
Avatar billede lund_dk Praktikant
23. august 2006 - 20:26 #2
188 skulle have været 118 -en skrivefejl :)
Men prøver lige
Avatar billede lund_dk Praktikant
23. august 2006 - 20:29 #3
Det virker perfekt..
Men vil gerne have resultet på siden, og ikke i en alert..
Resultatet må gerne være i en text boks
<input type="text" name="Resultat">
Avatar billede lund_dk Praktikant
23. august 2006 - 20:31 #4
Efter nærmere omtanke, vil jeg egentlig gerne have man skriver alle antal kg ind, og beregningen så selv regner tager det første cifre hvis kg er 2-cifret eller de 2 første cifre hvis kg er 3-cifret . kan du klare dette?
Avatar billede lund_dk Praktikant
23. august 2006 - 20:37 #5
23/08-2006 20:31:36: Nu kludder jeg i det, gør den jo.. hehe
Avatar billede terrak Nybegynder
23. august 2006 - 20:40 #6
Det gør den allerede :-)

Hvis du indsætter textboksen hvor resultatet skal være i, inde i formen, skal du bare ændre din form til dette:
<form name="getsum" onsubmit="document.getsum.Resultat.value=calcsum();return false;">
Avatar billede lund_dk Praktikant
23. august 2006 - 20:49 #7
Perfekt.. tak for hjælpen.
Smid et svar
Avatar billede terrak Nybegynder
23. august 2006 - 20:52 #8
Så lidt :-)
Avatar billede roenving Novice
24. august 2006 - 00:20 #9
>>terrak

-- hvis du allerede gemmer en reference til formen i en variabel, kan du jo bruge den i stedet:

var myform = document.getsum;
var myVaegt = myform.Vaegt.value.substr(0,myform.Vaegt.value.length-1);
var totalsum = parseInt(myform.Koen.value) + parseInt(myform.Alder.value) + parseInt(myVaegt) + parseInt(myform.Hoejde.value) + parseInt(myform.Aktiv.value) + parseInt(myform.Maal.value);

-- og i den slags situationer bruger jeg faktisk variablen f (og henter den fra formen selv:

function calcsum(f){
var myVaegt = f.Vaegt.value.substr(0,f.Vaegt.value.length-1);
var totalsum = parseInt(f.Koen.value) + parseInt(f.Alder.value) + parseInt(myVaegt) + parseInt(f.Hoejde.value) + parseInt(f.Aktiv.value) + parseInt(f.Maal.value);
}

-- og form-tagget:

<form ... onsubmit="this.Resultat.value=calcsum(this);return false;">
Avatar billede roenving Novice
24. august 2006 - 00:21 #10
-- og så glemte jeg rent return-linjen ,-(
Avatar billede terrak Nybegynder
24. august 2006 - 15:37 #11
Jo tak.
Javascript er ikke min stærke side, men da der tilsyneladende ikke kom nogen respons, havde jeg lidt ondt af manden og gravede min begrænsede viden om javascript frem :-)

Jeg vil se om jeg kan huske det til næste gang.
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