multiple select Einträge deaktivieren

Da sich mein Problem nur zum größten Teil, aber leider nicht ganz gelöst hat frag ich hier nochmal:

Ich hab mehrere select-Boxen, die den Befehl multiple enthalten, man kann also mehrere Dinge auswählen. Der oberste EIntrag heißt "Alle" mit value="alle". Dieser Eintrag soll jetzt automatisch deaktiviert werden wenn einer oder mehrere andere markiert werden und erst wieder aktiviert werden, wenn nichts mehr ausgewählt ist:

So hab ich die select-Box definiert:

PHP:
<select size="7" multiple name="test[]" onChange="dis()">
            <option value="alle">Alle
            <option value="erstes">Erstes...

Die Funktion steht im Header:

PHP:
function dis()
{
if((document.suche.test.selectedIndex != 0) && (document.suche.test.selectedIndex != -1))
{
document.suche.test[0].disabled = true;
}
else
{
document.suche.test[0].disabled = false;
}
}

Ich glaub dass es an document.suche.test.selectedIndex liegt, da die select-Box ja als Array erzeugt wurde, bin mir aber nich sicher.
 
Hallo,

ich denke nicht das du einzelne Punkte disablen kannst. Man greifst auf die Unterelemente des Selectfeldes mit "options" zu - und options kennt kein dissabled. Desweiteren ist die namesdekleration mit den Array Klammern nicht gültig - das ist zwar für PHP bequemer, aber eigentlich falsch...

Also wie gesagt - ich galub nicht das es geht, aber wenn du damit noch etwas rumspielen willst willst, dann versuch den zugriff mit
Code:
document.suche.elements[0].options[0].selected = false;

bye
 
Zuletzt bearbeitet:
Desweiteren ist die namesdekleration mit den Array Klammern nicht gültig - das ist zwar für PHP bequemer, aber eigentlich falsch...

Was meinst du damit? Die Deklaration der selectbox mit name="test[]" oder das hier: document.suche.test.selectedIndex?

Also dass man einzelne Felder deaktivieren kann muss gehn, da bei mercadia.de in der Kartensuche(ich weiß nich ob ich die linken darf deswegen lass ichs lieber) das Unterfeld Alle deaktiviert wird, sobald ein andres Unterfeld aktiviert wurde. Kann höchstens sein, dass es nicht mit Javascript gemacht wurde.
Aber ich probiers mal über die Anweisung die du mir gegeben hast. Trotzdem Danke.
 
Original geschrieben von TodesengelAzrael
Was meinst du damit? Die Deklaration der selectbox mit name="test[]" oder das hier: document.suche.test.selectedIndex?
Ich mein das [ ] bei name="test[]" eigentlich nicht zulässig ist.



Also dass man einzelne Felder deaktivieren kann muss gehn, da bei mercadia.de in der Kartensuche(ich weiß nich ob ich die linken darf deswegen lass ichs lieber) das Unterfeld Alle deaktiviert wird, sobald ein andres Unterfeld aktiviert wurde.
Nein - ist nur ein geschickter fake. Sie haben einfach "alle" eine andere Schriftfarbe gegeben :)
Code:
<select name="sel" multiple>
<option value="alle" style="color:#999999;" selected>alle</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>


bye :)
 

Neue Beiträge

Zurück