Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Oktober

SELFHTML Forumsarchiv
Radios auf Seite zählen

Informationsseite
  1. Seite (JAVASCRIPT) Radios auf Seite zählen von Tolwin, 30. 10. 2008, 10:16
nach unten

Radios auf Seite zählen

Die folgende Nachricht zum Thema stammt von: Tolwin, 30. 10. 2008, 10:16

Hallo Zusammen,

ich baue mir diverse Seiten dynamisch zusammen.
Auf diesen Seiten befindet sich eine unbestimmte Anzahl an Radio-Buttons (von 1 bis max 5)
Bevor der Nutzer die Seite sendet, möchte ich ermitteln welcher Button "checked" ist. Das mache ich mit einer simplen for Schleife.
Besteht die Möglichkeit per Javascript die Anzahl der vorkommenden Radios zu ermitteln. Diese benötige ich um das Inkrement für die For Schleife zu definieren.

Versucht hatte ich es, indem ich auf das Objekt document.forms[0].button
zugreifen wollte, bzw. mit count(document.forms[0].button). Das geht leider nicht. Gibt es hierfür nen kurzen und knackigen Befehl?

Schon mal danke und Gruß
Tolwin

nach obennach unten

Radios auf Seite zählen

Die folgende Nachricht zum Thema stammt von: Tolwin, 30. 10. 2008, 10:32

Noch mal ein Nachtrag,

mir geht es nicht um eine For Schleife die Buttons zu count ...
sondern gibt es eine JS Funktion die Objekte direkt countet?

Gruß
Tolwin

nach obennach unten

*checked* radio-controls filtern

Die folgende Nachricht zum Thema stammt von: peterS., 30. 10. 2008, 11:57



gruss Tolwin,


»» mir geht es nicht um eine For Schleife die Buttons zu count ...
»» sondern gibt es eine JS Funktion die Objekte direkt countet?

nein, es ist auch nicht sinnvoll, so etwas zu implementieren.
Du hast aber immer die moeglichkeit, die laenge von [NodeList]s
bzw. die laenge von [HTMLCollection]s oder eben die von [Array]s
abzufragen.

falls sich in Deinem speziellen fall alle "radio-controls" in
einem einzigen formular tummeln, koenntest Du auch direkt die
[elements]-collection dieses formulars durchlaufen, um alle
*input-type-radio*-elemente zu filtern und anschliessend die
laenge des durch den filter zurueckgegebenen arrays abfragen.

beispielhaft saehe dass dann so aus:


var formRadioControls = Array.filter(document.forms[0].elements, (function (elm/*, idx, arr*/) {

 return ((typeof elm.nodeName == "string") && (elm.nodeName.toLowerCase() == "input") && (elm.type == "radio"));
}));
alert("formRadioControls.length : " + formRadioControls.length);/*

 oder eben fuer dokumentenweit alle radio-controls:
*/

var allRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm/*, idx, arr*/) {

 return (elm.type == "radio");
}));
alert("allRadioControls.length : " + allRadioControls.length);/*

oder kuerzer:
*/

var amountOfAllRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm) {

 return (elm.type == "radio");

})).length;

alert("amountOfAllRadioControls : " + amountOfAllRadioControls);



da Du aber ganz speziell wissen willst, welcher "radio-control"
(pro radio-gruppe) *checked* ist, kann obige loesung gleich
umgebaut werden:


var allCheckedRadioControls = Array.filter(document.getElementsByTagName("input"), (function (elm/*, idx, arr*/) {

 return ((elm.type == "radio") && elm.checked);
}));



so long - peterS. - pseliger@gmx.net



--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford

ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]

nach obennach unten

Radios auf Seite zählen

Die folgende Nachricht zum Thema stammt von: EKKi, 30. 10. 2008, 11:06

Mahlzeit Tolwin,

»» Besteht die Möglichkeit per Javascript die Anzahl der vorkommenden Radios zu ermitteln. Diese benötige ich um das Inkrement für die For Schleife zu definieren.

Du kannst auf alle Elemente aller Formulare zugreifen. Wenn Du dann noch deren Typ bestimmst, weißt Du auch, ob es sich um einen Radiobutton handelt.


»» Versucht hatte ich es, indem ich auf das Objekt document.forms[0].button
»» zugreifen wollte, bzw. mit count(document.forms[0].button). Das geht leider nicht. Gibt es hierfür nen kurzen und knackigen Befehl?

Das forms-Objekt kennt keine Eigenschaft oder ein Unterobjekt namens "button". Ebensowenig gibt es eine Standardfunktion namens "count()" - suchst Du vielleicht die length-Eigenschaft?


MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|

nach obennach unten

Radios auf Seite zählen

Die folgende Nachricht zum Thema stammt von: Beat, 30. 10. 2008, 11:17

»» ich baue mir diverse Seiten dynamisch zusammen.
»» Auf diesen Seiten befindet sich eine unbestimmte Anzahl an Radio-Buttons (von 1 bis max 5)
»» Bevor der Nutzer die Seite sendet, möchte ich ermitteln welcher Button "checked" ist. Das mache ich mit einer simplen for Schleife.
»» Besteht die Möglichkeit per Javascript die Anzahl der vorkommenden Radios zu ermitteln. Diese benötige ich um das Inkrement für die For Schleife zu definieren.
»» Versucht hatte ich es, indem ich auf das Objekt document.forms[0].button
»» zugreifen wollte, bzw. mit count(document.forms[0].button). Das geht leider nicht. Gibt es hierfür nen kurzen und knackigen Befehl?

Notiz
Radiobuttons bilden aufgrund ihres Namens funktionale Gruppen.
Dich dürfte get_elements_by_name interessieren. Du bekommst einen Array zurück.
Sofern du die Richtlinien für das name Attribut einhältst, sind alle Elemente in diesem Array deine radio buttons.

mfg Beat
--
Woran ich arbeite:
X-Torah
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Oktober

© 1998-2008 Seite Impressum, Software: Classic Forum