Avatar billede swing Nybegynder
16. januar 2007 - 17:34 Der er 7 kommentarer og
1 løsning

Udregning i form

Er det muligt at addere værdier i 2 dropdownbokse og 1 checkboks?

Man vælger en værdi fra hver dropdownboks og hvis man markerer checkboksen skal den værdi regnes med så man får et samlet resultat.

Jeg har angivet value men kan ikke finde ud af at få det hele regnet sammen.

Her er et eksempel:

<form name="form1" method="post" action="">
  <p>
    <select name="Card1">
      <option value="16">Ace</option>
      <option value="14">King</option>
      <option value="13">Queen</option>
      <option value="12">Knight</option>
      <option value="11">Ten</option>
      <option value="9">9</option>
      <option value="8">8</option>
      <option value="7">7</option>
      <option value="6">6</option>
      <option value="5">5</option>
      <option value="4">4</option>
      <option value="3">3</option>
      <option value="2">2</option>
    </select>
    <select name="Card2">
      <option value="16">Ace</option>
      <option value="14">King</option>
      <option value="13">Queen</option>
      <option value="12">Knight</option>
      <option value="11">Ten</option>
      <option value="9">9</option>
      <option value="8">8</option>
      <option value="7">7</option>
      <option value="6">6</option>
      <option value="5">5</option>
      <option value="4">4</option>
      <option value="3">3</option>
      <option value="2">2</option>
    </select>
  </p>
  <p>
    <input type="checkbox" name="Pair" value="10">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
Avatar billede mclemens Nybegynder
16. januar 2007 - 18:33 #1
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">
function cardcalc(e){
  f=e.form;f.resultat.value=parseInt(f.Card1.value)+parseInt(f.Card1.value)+parseInt(f.Pair.checked?f.Pair.value:0);
}
</script>

</head><body>
<form name="form1" method="post" action="">
  <p>
    <select name="Card1" onchange="cardcalc(this);">
      <option value="16">Ace</option>
      <option value="14">King</option>
      <option value="13">Queen</option>
      <option value="12">Knight</option>
      <option value="11">Ten</option>
      <option value="9">9</option>
      <option value="8">8</option>
      <option value="7">7</option>
      <option value="6">6</option>
      <option value="5">5</option>
      <option value="4">4</option>
      <option value="3">3</option>
      <option value="2">2</option>
    </select>
    <select name="Card2" onchange="cardcalc(this);">
      <option value="16">Ace</option>
      <option value="14">King</option>
      <option value="13">Queen</option>
      <option value="12">Knight</option>
      <option value="11">Ten</option>
      <option value="9">9</option>
      <option value="8">8</option>
      <option value="7">7</option>
      <option value="6">6</option>
      <option value="5">5</option>
      <option value="4">4</option>
      <option value="3">3</option>
      <option value="2">2</option>
    </select>
  </p>
  <p>
    <input type="checkbox" name="Pair" value="10" onclick="cardcalc(this);">
  </p>
  <p>
    <input type="input" value="" name="resultat">
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body></html>
Avatar billede swing Nybegynder
16. januar 2007 - 19:27 #2
Ahh cool, det virker næsten. Men hvis jeg vælger Ace i card1 og 2 i card2 ganger den tallene så det bliver 32 (2*16) i stedet for at addere det rigtige resultat:18

Hvis jeg vælger submit forsvinder det hele

Jeg troede det ville hjælpe at sætte et tomt felt ind i toppen, men...

Du kan evt se det på http://freerolls.ebberup.dk
Avatar billede swing Nybegynder
16. januar 2007 - 19:28 #3
Avatar billede mclemens Nybegynder
16. januar 2007 - 19:41 #4
Arg jeg er en fjummer :P

<script type="text/javascript">
function cardcalc(e){
  f=e.form;f.resultat.value=parseInt(f.Card1.value)+parseInt(f.Card2.value)+parseInt(f.Pair.checked?f.Pair.value:0);
}
</script>


Jeg havde skrevet parseInt(f.Card1.value)+ to gange i
træk den ene skulle have været parseInt(f.Card2.value)+
Avatar billede swing Nybegynder
16. januar 2007 - 19:46 #5
Perfekt!

Og hvis jeg vil smide en checkboks mere ind?

Post venligst et svar for point.
Avatar billede mclemens Nybegynder
16. januar 2007 - 19:51 #6
<input type="checkbox" name="Pair2" value="100" onclick="cardcalc(this);">

<script type="text/javascript">
function cardcalc(e){
  f=e.form;f.resultat.value=parseInt(f.Card1.value)+parseInt(f.Card2.value)+parseInt(f.Pair.checked?f.Pair.value:0)+parseInt(f.Pair2.checked?f.Pair2.value:0);
}
</script>

Her er lige et svar :o)
Avatar billede swing Nybegynder
16. januar 2007 - 19:57 #7
Fantastisk - tusind tak!
Avatar billede mclemens Nybegynder
16. januar 2007 - 20:01 #8
Velbekomme, og mange tak for point :o)
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