henman: onclick vs. onchange

Beitrag lesen

Servus LastBoyScout

  • die Eigenschaft "selectedIndex" des Selects gibt dir den Index des zurzeit gewählten Option-Elementes
  • die Eigenschaft "text" der Option-Elemente gibt dir den angezeigten Text des Elementes. Wenn du die zurzeit gewählte Option ansprichst, bekommst du also den angezeigten Text und die Value. Aber wie bzw. wo soll ich die Anzahl der benötigten Optionen übergeben? Ich kann diese ja weder im Valuewert noch im Optionstext hinterlegen!

Du hast doch Zugriff auf das DOM-Element.

<select onchange="onSelectChange()">
    <option value="1">A</option>
    <option value="2">B</option>
</select>
function onSelectChange(){
   // ich spare mir jetzt mal den Code, der die Elemente selektiert
   var _select; // enthält das Select-Element
   var _optionsList; // enthält ein Array mit allen Option-Elementen des Selects
   
   var _gewaehlterWert = _select.value; // wird 1 oder 2 enthalten
   var _gewaehlterText = _optionsList[_select.selectedIndex].text; // wird A oder B enthalten
   
}

Anderer Ansatz:

Entscheide im Change-Handler je nach Übergabewert, welche Anzahl genutzt werden soll. Auch hier das Problem, wie ich der Funktion übermitteln soll wie viele Felder sie bei der jeweiligen Auswahl erzeugen soll!?

Prüfe, welche Option des Selects gewählt ist. IN der Funktion könntest du dann einen switch einsetzen, der je nach gewählter Option eine Variable _anzahl mit entsprechender Anzahl belegt.

P.S. Warum onselect() nicht auch für <option> möglich gemacht wurde ist mir ein Rätsel...

onselect wird ausgelöst, wenn Text markiert wird. Das hat nichts mit der Auswahl in einem Select-Element zu tun.

ciao

--
"Sir, we are surrounded!" - "Excellent! We can attack in any direction!"