Radio Button einen Wert zuweisen

sugar

Erfahrenes Mitglied
Hallo zusammen,

habe folgendes Problem, ich habe ein Formular bei dem ich mehrere Felder zusammenrechnen möchte. Mit den Textfeldern war es kein Problem aber jetzt habe ich zwei Radiobuttons die natürlich den gleichen Namen haben aber einen unterschiedlichen Wert. Nun soll geprüft werden welcher von beiden angeklickt ist und diesem dann den entsprechenden Wert zuweisen. So wie unten im Beispiel rechnet er einfach alles zusammen. :(
Hat jemand eine Idee?

function summeTotal(){
var anzahlA = 0;
var anzahlB = 0;
var anzahlE = 0;
var gPreis = 0;

with(window.document.accform){

if(participant_fees.value="participant_before_15"){
anzahlA = 200;
}else{
anzahlA = 0;
}

if(participant_fees.value="participant_from_16"){
anzahlB = 250;
}else{
anzahlB = 0;
}

if(vouchers_total.value==''){
anzahlE = 0;
}else{
anzahlE = vouchers_total.value;
}

gPreis = parseInt(anzahlA)+parseInt(anzahlB)+parseInt(anzahlE);
total_euro.value = gPreis;
}
}
 
So ala:
Code:
for(i=0;i<document.formularname.radiobuttonsname.length;++i)
{
if(document.formularname.radiobuttonsname[i].checked)
{document.formularname.radiobuttonsname[i].value='ich bin gecheckt';}
}

Radiobuttons mit identischem Namen sind in einem Array ansprechbar... den musst du durchlaufen, und checken, ob das jeweilige Element gecheckt ist.
 
Ehrlich gesagt verstehe ich das nicht so ganz :-(

Ich habe jetzt folgendes gefunden und ausprobiert aber leider bekomme ich immer eine Fehlermeldung:

function summeTotal(){
var anzahlA = 0;
var anzahlB = 0;
var anzahlC = 0;
var anzahlD = 0;
var anzahlE = 0;
var gPreis = 0;

with(window.document.accform){

if(vouchers_total.value==''){
anzahlE = 0;
}else{
anzahlE = vouchers_total.value;
}

if (document.getElementsByName("participant_fees")[0].checked = true;{
anzahlA = 200;
}else if
(document.getElementsByName("participant_fees")[1].checked = true;{
anzahlB = 250;
}

gPreis = parseInt(anzahlA)+parseInt(anzahlB)+parseInt(anzahlE);
total_euro.value = gPreis;
}
}
 
Ich weiss zwar nicht, ob das alles ist, aber ein Problem ist der verwendete Operator:
Code:
document.getElementsByName("participant_fees")[0].checked = true
... das ist ein Zuweisungsoperator, du must einen Vergleichsoperator einsetzen...zwei mal =
Code:
document.getElementsByName("participant_fees")[0].checked == true
 
hm das hab ich ausprobiert, daran lag es wohl nicht. Stimmt das mit den Klammern denn so? Da war ich mir nicht so ganz sicher!
 
Das mit den doppelten = muss sein, ..es erzeugt zwar keinen Fehler, aber dein Skript würde immer die erste Bedingung mit 200 als wahr ansehen.

Der Fehler liegt tatsächlich an den Klammern....da fehlt in deinen if-Bedingungen 2mal die schliessende Klammer...das sieht man etwas schlecht bei der von dir verwendeten Einrückung....
so sollte es gehen:
Code:
<script type="text/javascript">
<!--
function summeTotal()
{
var anzahlA = 0;
var anzahlB = 0;
var anzahlC = 0;
var anzahlD = 0;
var anzahlE = 0;
var gPreis = 0;

with(document.accform)
    {
    if(!isNaN(parseInt(vouchers_total.value)))
        {
        anzahlE = parseInt(vouchers_total.value);
        }
    if(participant_fees[0].checked)
        {
        anzahlA = 200;
        }
    else if(participant_fees[1].checked)
        {
        anzahlB = 250;
        }
    gPreis =anzahlA+anzahlB+anzahlE;
    total_euro.value = gPreis;
    }
}
//-->
</script>
 

Neue Beiträge

Zurück