• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

input-field durch select (de)aktivieren

Status
Für weitere Antworten geschlossen.

Körnerbrötchen

Aktives Mitglied
Moin Leute,
ich will eines meiner Formulare so anpassen, dass ein Input-Feld standardmäßig deaktiviert ist und sich erst dann aktiviert, wenn ein bestimmter Wert in einem select ausgewählt wurde. Das sieht dann in etwa so aus:
Code:
        <fieldset><legend>Sonstiges</legend>
            <label for="jersey">Trikot:</label>
                <select name="jersey" onchange="this.form.otherjersey.disabled=this.selectedIndex!='other';">
                    <option value="">Trikot auswählen...</option>
                    <option>Adidas 2008 schwarz (kurzarm)</option>
                    <option>Adidas 2008 rot (kurzarm)</option>
                    <option>Adidas 2008 gelb (kurzarm)</option>
                    <option>Adidas 2008 blau (kurzarm)</option>
                    <option>Adidas 2008 schwarz (langarm)</option>
                    <option>Adidas 2008 rot (langarm)</option>
                    <option>Adidas 2008 gelb (langarm)</option>
                    <option>Adidas 2008 blau (langarm)</option>
                    <option>Adidas 2006 schwarz (kurzarm)</option>
                    <option>Adidas 2006 rot (kurzarm)</option>
                    <option>Adidas 2006 gelb (kurzarm)</option>
                    <option>Adidas 2006 blau (kurzarm)</option>
                    <option>Adidas 2006 schwarz (langarm)</option>
                    <option>Adidas 2006 rot (langarm)</option>
                    <option>Adidas 2006 gelb (langarm)</option>
                    <option>Adidas 2006 blau (langarm)</option>
                    <option value="other">anderes Trikot</option>
                </select><br />
            <label for="otherjersey">anderes Trikot:</label> <input type="text" name="other-jersey" id="otherjersey" /><br />
Das habe ich mir an einigen Codeschnipseln so zusammengebastelt, tut aber leider nicht wirklich das was ich will. Ansonsten habe ich eher wenig Ahnung mit JS ;) . Habe ich mich bisher immer d'rum gedrückt.

Grüße,
Körnerbrötchen
 
Werbung:
Erstmal bezieht sich for="" immer auf eine eindeutige ID. Deshalb sollte es die ID, die in for steht, auch geben.

Dann glaube ich, dass du das Formular noch Server-seitig auswerten möchtest, deshalb wäre value="" vll nicht die beste Lösung, sondern class="".

Überhaupt solltest du dir die Elemente beim Load-Event (oder besser wenn das DOM fertig geladen ist) holen, das Change-Event an das Select hängen und dann einfach folgendes machen:
Code:
inputRef.disabled = (selectRef.options[selectRef.selectedIndex].className == "other");
Das Input dann erst auf disabled = true setzten, damit es zugänglich bleibt.
 
Erstmal bezieht sich for="" immer auf eine eindeutige ID. Deshalb sollte es die ID, die in for steht, auch geben.
Danke für den Hinweis, da ist mir die id durchgegangen. ;)

Dann glaube ich, dass du das Formular noch Server-seitig auswerten möchtest, deshalb wäre value="" vll nicht die beste Lösung, sondern class="".
Klar ist value die beste Lösung. Glaub mir.

Und wenn du meinen vorletzten Satz meines Startpostings beachten würdest, dann wäre ich dir sehr dankbar.

Grüße
 
Werbung:
Und du erwartest, dass man dir jetzt alles vorkaut? Wenn value OK ist, dann geht auch folgendes:
Code:
inputRef.disabled = (selectRef.value == "other");
 
Hehe^^ ich bin lange genug hier im Forum im Support beschäftigt um so nicht zu denken. Sonst hätte ich es ja auch nicht alleine probiert und das versuch ich jetzt auch mal weiter.

Grüße
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben