# Radiobutton - Value auslesen



## cuaro (9. April 2010)

Hi Leute.. Ich war grad auf der Suche nach einem geeigneten Forum für meine Frage.. Da bin ich bei euch gelandet  

Ich muss dazu sagen, dass ich erst gerade versuche mich ein bischen mit der Materie zu beschäftigen. 
Ein Arbeitskolleg hat mir hier Tips gegeben, wie ich mit Dojo ziemlich schnell und unkompliziert mein Vorhaben 
gestalten kann.. 

Also hab ich mir aus dem Dojo-Campus ein Beispiel geholt und versucht das umzusetzen.. soweit sieht das ganze auch schick aus.. 
Jetzt wollte ich aber meinen Radiobutton von 2elementen auf 5 ausweiten und bekomme das Problem, dass ich bei unten stehendem Code (und push auf OK) immer nur entweder das erste Element oder das zweite als value zurück bekomme.. 
Also wenn ich "english" anklicke, kommt englisch.. bei allen weiteren Elementen kommt immer nur "german" zurück.. 

Kann mir jemand mal bitte auf den Code schauen und mir einen Tip geben, was ich falsch mache  

Danke schonmal und beste Grüße aus Süddeutschland  


```
<th width="450">
          <form id="sprache">
			<input type="radio" dojoType="dijit.form.RadioButton" name="lang" checked value="english" />
			<label>
				English
			</label>
			<input type="radio" dojoType="dijit.form.RadioButton" name="lang" value="german" />
			<label>
				German
			</label>
			<input type="radio" dojoType="dijit.form.RadioButton" name="lang" value="french" />
			<label>
				French
			</label>
 			<input type="radio" dojoType="dijit.form.RadioButton" name="lang" value="spanish" />
			<label>
				Spanish
			</label>
			<input type="radio" dojoType="dijit.form.RadioButton" name="lang" value="portuguese" />
			<label>
				Portuguese
			</label>
          </form>
</th>
<th>
          <button onClick=" with(dojo.byId('sprache'))with(elements[0])with(elements[checked?0:1])
					document.getElementById('ex_iframe').src= value + '/' + dijit.byId('DateienSelect').attr('value') + '.html';return false">
			                           OK
	   </button>
</th>
```


----------



## Chef_De_Loup (9. April 2010)

```
with(dojo.byId('sprache'))with(elements[0])with(elements[checked?0:1])
```
Du fragst hier nur ab ob das Erste Element ausgewaehlt wurde und wenn ja dann nimm den Value des ersten sonst den value des zweiten Elements (Liste beginnt bei 0 daher ist 0 = erstes Element). 
Du musst hier alle Elemente durchgehen und schauen welches ausgewaehlt wurde. Leider hab ich von dojo keine Ahnung und kann Dir da jetzt keine direkte Loesung geben. Aber im Grunde muesste es sowas sein:

```
for (var i=0; i<5; i++)
  if (element.checked)
     // hier dein code fuer die Ausgabe des gewaehlten Elementes
```

Frag mal Deinen Kollegen wie man das da umsetzt.


----------



## cuaro (9. April 2010)

Chef_De_Loup hat gesagt.:


> Frag mal Deinen Kollegen wie man das da umsetzt.



Jo, wollte ich eigentlich, aber der is ne ganze Weile nicht mehr da und ich möchte das ding schnellstmöglich fertig bekommen  
über ne for-schleife komm ich hier irgendwie nich ganz weiter.. 
Hat evt. jemand ahnung von dem Dojo-Dingens und kann etwas dazu sagen ?

DANKE vielmals


----------



## Quaese (9. April 2010)

Hi,

du könntest über das *registry*-Objekt und dessen Methode *filter* die benötigten Widgets (name=lang) ermitteln. Mit der Methode *forEach* iterierst du über die zurückgelieferte "Nodelist" und prüfst die gewünschte Eigenschaft.

```
<button onclick="dijit.registry.filter(function(w, i){ return (w.name == 'lang');}).forEach(function(w){ w.attr('checked')?alert(w.value):null;}); return false">
```
 
Sollen komplexere Anweisungen ausgeführt werden, bietet es sich an, das Ganze in eine Funktion zu packen.

Ciao
Quaese


----------



## cuaro (13. April 2010)

.. danke.. das hat funktioniert


----------

