JavaScript Mehrere Auswahllisten abfragen

M

Mr. Snoot

Gast
Hio,

ich habe mehrere Auswahllisten, bei denen ich mit JS prüfen möchte, ob überall der erste Eintrag ausgewählt ist.

Könnte man so lösen:
PHP:
if(document.getElementById('sel_kap').selectedIndex == 0 && document.getElementById('sel_gm').selectedIndex == 0 && document.getElementById('sel_schreiben').selectedIndex == 0 && document.getElementById('sel_lesen').selectedIndex == 0 && document.getElementById('sel_preis').selectedIndex == 0 && document.getElementById('sel_land').selectedIndex == 0 && document.getElementById('sel_anzahl').selectedIndex == 0 && document.getElementById('sel_lagernd').selectedIndex == 0)
Ist aber doof :D

Geht's auch einfacher? Alle notwendigen Auswahllisten fangen mit sel_ an.


Bzgl. eines anderen Problems hab ich ja schon mal den Tipp bekommen, dass man bei jQuery mittels $("[id*='sel_']").change jede Änderung irgendeiner Auswahlliste abfragen kann. Aber ich will ja gleichzeitig den Zustand aller Listen wissen.

Ich bräuchte eben sowas wie $("[id*='sel_']").selectedIndex == 0, was alle Listen abgreift.


Evtl. hilft mir getElementsByTagName()? Allerdings habe ich weitere Auswahllisten, die davon unberührt bleiben müssen.
 
Zuletzt bearbeitet:
Mein Vorschlag (auf jQuery-Basis) wäre:

Code:
var result = true;
$("select[id*='sel_']").each(function() {
    if (this.selectedIndex != 0) {
        result = false;
    }
}
Noch eleganter geht es, glaube ich, nicht. :)
 
Hier noch eine jQuery Variante:
PHP:
if($('[id*="sel_"][selectedIndex=0]').length == x)

wobei x die Anzahl der erwarteten Selects ist.
 
Hm, das wäre natürlich noch eleganter, danke :)

Wobei ich dann eben erst die Anzahl ermitteln müsste bzw. diese händisch eintrage. Muss ich mir mal überlegen, was besser ist.
 
wenn dir die Anzahl voher nicht bekannt ist, kannst du es auch so prüfen:
PHP:
if( !$('[id*="sel_"]').is('[selectedIndex!=0]') )

.is('[selectedIndex!=0]') liefert 'true' wenn mindestens ein SelectIndex ungleich 0 ist. Das Ganze noch mal negiert und du hast wast du willst. :)
 
Zurück
Oben