Toon posts:

javascript radiobutton probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey guys,

ik heb een probleem:

ik heb een aantal radiobuttons en als 1 daarvan veranderd dan moet er een totaalprijs berekend worden.

De radiobuttons zijn gedefinieerd als volgend:
code:
1
<input type="Radio" name="team1" id="btn1" value="4dln" onChange="calc()">

Van deze buttons zijn er 3 groepen van 4, waarvan alleen het id veranderd per button, en de naam per groep.

Ze roepen dus allemaal de functie calc() aan als ze van waarde veranderen, en deze calc moet ze vervolgens allemaal bij langslopen om te kijken welke er actief is, en dan daarvan de prijs bij de totaalprijs op te tellen.

Deze functie ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function calc()
{
    var totaal=0;
        if (this.document.getElementByName("team1").item(0).checked)
    {
        totaal = totaal + 200;
    }
    elseif (this.document.getElementByName("team1").item(1).checked)
    {
        totaal = totaal + 250;
    }
    elseif (this.document.getElementByName("team1").item(2).checked)
    {
        totaal = totaal + 300;
    }
    
    this.document.getElementById("ttl").value = totaal;
}

Als ik echter nu de waarde van 1 van deze 3 knoppen verander, geeft ie de volgende foutmelding:

Deze eigenschap of methode wordt niet ondersteund door het object.

Wie kan me verder helpen ???

  • R4NCOR
  • Registratie: December 2000
  • Laatst online: 10-05 00:11

R4NCOR

eigenlijk gewoon Niels

En wat is "ttl"? Een input-field (type: text)?

Overigens pakt ie met je huidige if-statement altijd maar 1 van de waarden en zal die nooit wat optellen. Je kijkt namelijk eerst of 0 checked is, en alleen als dat niet zo is, kijk je pas of 1 checked is. Als 0 checked is zal die dus nooit naar 1 kijken :P Maar goed, dit is even buiten je andere probleem om.

edit @ hierbeneden, maar natuurlijk, stom. Sorry :)

[ Voor 9% gewijzigd door R4NCOR op 03-03-2005 01:08 ]


Verwijderd

Topicstarter
ttl is inderdaad een textfield

En dat hij dan niet naar die andere 2 kijkt moet ook, het gaat om radiobuttons en daarvan kan er maar 1 per groep waar zijn. Als 1 dus waar is dan doen 2 en 3 er niet meer toe.

Op deze manier moet ik dus 3 groepen bijlangs, waarbij elke groep 1 prijs terug moet geven, en deze 3 samen vormen de totaalprijs.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

getElementByName is geen standaard DOM method...

Intentionally left blank


Verwijderd

Topicstarter
als ik getElementById("team1[getal]"), waarbij getal staat voor de button in de group, gebruik krijg ik de foutmelding dat het object leeg is of niet bestaat

[ Voor 32% gewijzigd door Verwijderd op 03-03-2005 00:39 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

omdat team1 ook geen id is, btn1 wel gezien je voorbeeld.
Als je gebruik maakt van een form zou ik echter van de elements-collectie gebruik maken, dan kan je het name attribuut wel gebruiken ;)

Intentionally left blank


Verwijderd

Topicstarter
k ik ga nu ff pitten, ik probeer het morgen wel ff ;)
Pagina: 1