Avatar billede fcknet Nybegynder
20. oktober 2004 - 17:08 Der er 6 kommentarer og
1 løsning

Opdatere værdifelt ved afkrydsning af felt

Jeg har en mængde checkboxes. Alle disse checkboxes har en værdi, et tal (decimaltal). Når checkboxen henholdsvis checkes og uncheckes skal mit værdifelt (inputfelt, navn: amount) opdateres. Det skal opdateres ved at checkboxen hvis den bliver checked skal have sin bærdi (value) lagt til den eksisterende værdi i feltet amount og omvendt hvis den bliver slået fra igen.

Hvordan gøres dette?
Avatar billede roenving Novice
20. oktober 2004 - 17:17 #1
F.eks.

<form>
<input type="text" name="amount" value="0"><br>
0.25 <input type="checkbox" value="0.25" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
0.50 <input type="checkbox" value="0.50" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
0.75 <input type="checkbox" value="0.75" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
1.00 <input type="checkbox" value="1.00" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
1.25 <input type="checkbox" value="1.25" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
1.50 <input type="checkbox" value="1.50" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
1.75 <input type="checkbox" value="1.75" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
2.00 <input type="checkbox" value="2.00" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
2.25 <input type="checkbox" value="2.25" onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);"><br>
</form>
Avatar billede fcknet Nybegynder
20. oktober 2004 - 17:26 #2
<form action='?' id='tilkoeb' name='tilkoeb' method='post' style='display: inline;'><table><tr><td></td><td style='width: 350px;'><p>Produkt</p></td><td><p>Pris</p></td></tr><tr>
                <td><input onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);" type="checkbox" name="gul" value="6.00"></td><td><p><font style='background-color: yellow;'>Gul baggrund</font> på skrift i auktionoversigt</p></td><td><p>6,00 kr</p></td>
            </tr><tr>
                <td><input onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);" type="checkbox" name="fed" value="4.00"></td><td><p><strong>Fed</strong> skrift i auktionsoversigt</p></td><td><p>4,00 kr</p></td>

            </tr><tr>
                <td><input onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);" type="checkbox" name="pic1" value="6.00"></td><td><p>Et ekstra billede af varen.<br />Kan <i>ikke</i> kombineres med to ekstra billeder</p></td><td><p>6,00 kr</p></td>
            </tr><tr>
                <td><input onclick="this.form.amount.value=(this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value);" type="checkbox" name="pic2" value="10.00"></td><td><p>To ekstra billeder af varen.<br />Kan <i>ikke</i> kombineres med et enkelt ekstra billede</p></td><td><p>10,00 kr</p></td>

            </tr></table></form><p>Du har nu valgt produkter for: <input type='text' name='amount' value='0'>


min Firefox javascript debugger siger:
Error: this.form.amount has no properties.


hvad er der i vejen?
Avatar billede fcknet Nybegynder
20. oktober 2004 - 17:32 #3
Ah </form> var i vejen.
Hvordan gør det så der er altid er to decimaler på?
Avatar billede roenving Novice
20. oktober 2004 - 17:35 #4
Indsæt denne:

<script language="javascript" type="text/javascript">
function afrund(tal){
  if(isNaN(tal))return "0,00";
  tal = ""+(Math.round(tal*100))/100;
  punktum = tal.indexOf(".");
  if (punktum==-1)return tal+".00";
  if (tal.length-punktum==3)return tal;
  else return tal+"0";
}
</script>

-- og gør:

<td><input onclick="this.form.amount.value=afrund((this.checked)?+this.form.amount.value+ +this.value:+this.form.amount.value-(+this.value));" type="checkbox" name="pic2" value="10.00"></td><td><p>To ekstra billeder af varen.<br />Kan <i>ikke</i> kombineres med et enkelt ekstra billede</p></td><td><p>10,00 kr</p></td>
Avatar billede fcknet Nybegynder
20. oktober 2004 - 17:59 #5
Tak. Smider du et svar?
Avatar billede roenving Novice
20. oktober 2004 - 18:01 #6
Velbekomme '-)
Avatar billede roenving Novice
20. oktober 2004 - 18:04 #7
-- og tak for point ;~}
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