# Radio Button einen Wert zuweisen



## sugar (27. Februar 2004)

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;
> ...


----------



## Sven Mintel (27. Februar 2004)

So ala:

```
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.


----------



## sugar (27. Februar 2004)

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;  
  }
}


----------



## Sven Mintel (27. Februar 2004)

Ich weiss zwar nicht, ob das alles ist, aber ein Problem ist der verwendete Operator:
	
	
	



```
document.getElementsByName("participant_fees")[0].checked = true
```
 ... das ist ein Zuweisungsoperator, du must einen Vergleichsoperator einsetzen...zwei mal =

```
document.getElementsByName("participant_fees")[0].checked == true
```


----------



## sugar (27. Februar 2004)

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!


----------



## Sven Mintel (27. Februar 2004)

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:

```
<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>
```


----------



## sugar (27. Februar 2004)

vielen vielen Dank! Hat funktioniert!


----------

