Avatar billede krogstrup Nybegynder
15. marts 2003 - 10:16 Der er 8 kommentarer og
1 løsning

Lægge tal sammen via checkboxes...

Jeg har en box hvori forskellige serviceydelser præsenteres med en tekst og en checkbox for hver linje.

value i hver checkbox repræsenterer prisen for ydelsen.

Nederst ønsker jeg at vise den samlede pris for de valgte ydelser. Dvs. at prisen starter med at vise 0 kr.

Når brugeren så klikker på en checkbox, skal prisen tillægges den angivne værdi i value. Men hvis brugeren fjerner "fluebenet" i checkboxen igen, skal prisen naturligvis reduceres igen.

Hvordan gøres dette enklest ???

:-)
Avatar billede Slettet bruger
15. marts 2003 - 10:21 #1
Sådan her fx:

Nr. 1: <input type="checkbox" value="49" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + (parseFloat(this.value, 10)) * ((this.checked) ? 1 : -1);"><br>
Nr. 2: <input type="checkbox" value="10" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + (parseFloat(this.value, 10)) * ((this.checked) ? 1 : -1);"><br>
Nr. 3: <input type="checkbox" value="20.50" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + (parseFloat(this.value, 10)) * ((this.checked) ? 1 : -1);"><br>
<input type="text" value="0" name="ialt">
Avatar billede krogstrup Nybegynder
15. marts 2003 - 10:33 #2
Mange tak :-)
Avatar billede medions Nybegynder
15. marts 2003 - 10:41 #3
phoenixv> Jeg står og skal bruge det samme, men lige med en enkelt detalje mere... Håber lige du har tid 2 sek...

Der skal være box 1 og 2, men hvis begge er checked skal, der trækkes 10 kr fra i det totale beløb... (altså så man får rabat hvis man vælger begge...)

//>Rune
Avatar billede Slettet bruger
15. marts 2003 - 10:47 #4
Der skal altså kun være to bokse?
Avatar billede medions Nybegynder
15. marts 2003 - 10:48 #5
Yep :-)

//>Rune
Avatar billede Slettet bruger
15. marts 2003 - 11:07 #6
medions>> Prøv:

Nr. 1: <input type="checkbox" name="box1" value="49" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + parseFloat(this.value, 10) * ((this.checked) ? 1 : -1) - ((this.form.box2.checked) ? 10 : 0);"><br>
Nr. 2: <input type="checkbox" name="box2" value="10" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + (parseFloat(this.value, 10)) * ((this.checked) ? 1 : -1) - ((this.form.box1.checked) ? 10 : 0);"><br>
<input type="text" value="0" name="ialt">
Avatar billede medions Nybegynder
15. marts 2003 - 15:02 #7
phoenixv> *G* den er vidst helt gal!

Nr. 1: <input type="checkbox" name="box1" value="25" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + parseFloat(this.value, 10) * ((this.checked) ? 1 : -1) - ((this.form.box2.checked) ? 10 : 0);"><br>
Nr. 2: <input type="checkbox" name="box2" value="25" onClick="this.form.ialt.value = parseFloat(this.form.ialt.value, 10) + (parseFloat(this.value, 10)) * ((this.checked) ? 1 : -1) - ((this.form.box1.checked) ? 10 : 0);"><br>
<input type="text" value="0" name="ialt">

Prøv at klik den alle sammen, og så unclick dem igen, så får du minus, hvis så jeg klikker igen, får jeg kun 5 :-/

//>Rune
Avatar billede Slettet bruger
15. marts 2003 - 16:30 #8
Så får du den her:

<html>
<head>
<script>
function klik(frm) {
  t = 0;
  if (frm.box1.checked)
    t += parseFloat(frm.box1.value, 10);
  if (frm.box2.checked)
    t += parseFloat(frm.box2.value, 10);
  if (frm.box1.checked && frm.box2.checked)
    t -= 10;
  frm.ialt.value = t;
}
</script>
</head>
<body>
<form>
Nr. 1: <input type="checkbox" name="box1" value="25" onClick="klik(this.form);"><br>
Nr. 2: <input type="checkbox" name="box2" value="25" onClick="klik(this.form);"><br>
<input type="text" value="0" name="ialt">
</form>
</body>
</html>
Avatar billede medions Nybegynder
15. marts 2003 - 16:38 #9
Den virker perfekt!!
1000 thx!

//>Rune
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