keine_Ahnung: DropDown mit eigener Angabe

Beitrag lesen

Hallo,

ich hab da mal vor einiger Zeit ein tolles Javascript gefunden das es mir erlaubt in einer DropDown Box auch noch eine eigene Angabe zu machen.

Das Script geht auch aber nur immer mit der ersten DropDown Box. Ich selber hab keine Ahnung von Javascript und würd mich freuen wenn mir jemand kurz erklären könnte wie das funktioniert oder fast noch besser wie ich das Script hier verändern muss, dass ich es auf einzelene DropDown Boxen anwenden kann.

Am liebsten würde ich es extern in einer .js Datei lasen und nur einbinden und dann den gewünschten DropDowns diese Funktion verpassen wie eine Klasse oder ID.

Geht das? Wenn nicht dann wenigstens so das alle DropDown Boxen das Script nutzen.

Hier das script:
window.onload = function() {

var other = new Option('Anderes …');
      var s = document.getElementsByTagName('select')[0];
          s.options[s.options.length] = other; // Eintrag „Anderes …“ hinzufügen

s.onchange = function() { // Aktion bei Änderung der Auswahl

if (this.selectedIndex == (s.options.length - 1)) { // Bei Auswahl des letzte Elementes

var i = document.createElement('input'); // Eingabefeld erstellen
                  i.value = i.defaultValue = 'Anderes …'; // Wert und Standardwert festlegen
                  i.onblur = function() { // Aktion beim Verlassen des Eingabefeldes

if (i.value != i.defaultValue) { // Sollte ein neuer Wert eingegeben worden sein …

--s.options.length; // Eintrag „Anderes …“ entfernen
                      s.options[s.options.length] = new Option(i.value, i.value); // Neuen Wert hinzufügen
                      s.options[s.options.length] = other; // Eintrag „Anderes …“ wieder hinzufügen

/* Auswahl auf das soeben eingefügte Element setzen */
                      s.selectedIndex = (s.options.length - 2);

} else {
                      /* Auswahl auf das erste Element setzen, da onchange bei
                       erneuter Auswahl von „Anderes …“ sonst nicht aktiv wird */
                      s.selectedIndex = 0;
                    }

s.style.display = ''; // Auswahlfeld wieder einblenden
                    i.parentNode.removeChild(i); // Eingabefeld wieder entfernen

};

this.parentNode.insertBefore(i, this); // Eingabefeld vor Auswahlfeld einfügen
              this.style.display = 'none'; // Auswahlfeld ausblenden
              i.focus(); // Eingabefeld fokussieren
              i.select(); // Inhalt auswählen

}
          };
    };