Abrufen der ID einer .net-Dropdownliste in Javascript auf Client-Klick

Ich muss die ID einer Dropdownliste (ASP.Net Control) abrufen, damit ich feststellen kann, ob ein Element ausgewählt wurde.

Im Moment versuche ich, die Anzahl der Dropdownliste einfach wie folgt in ein Warnfeld zu schreiben:

OnClientClick="alert(document.getElementID('<%=ListBox1.ClientID %>').options.length)

Der Fehler, den ich bekomme, ist 'Dokument erforderlich'.

Antwort auf "Abrufen der ID einer .net-Dropdownliste in Javascript auf Client-Klick " 3 von antworten

Pleas verwenden document.getElementById anstelle von document.getElementId

Zuerst korrigieren wir die getElementID in your code to in Ihrem Code auf getElementById: :

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);"

Wenn Sie wissen möchten, welches Element ausgewählt ist, verwenden Sie die selectedIndex property: Eigenschaft:

OnClientClick="alert(document.getElementById('<%=ListBox1.ClientID %>').selectedIndex);"

Wenn Sie den Wert der Option anstelle des Indexes wollen, verwenden Sie die Optionssammlung mit dem Index:

OnClientClick="var s=document.getElementById('<%=ListBox1.ClientID %>');alert(s.options[s.selectedIndex].value);"

Bearbeiten:
Dies würde funktionieren, wenn das Steuerelement, bei dem Sie es verwenden möchten, kein Serversteuerelement wäre, z. B.

<input type="button" onclick="alert(document.getElementById('<%=ListBox1.ClientID %>').options.length);" />

Da Sie über ein Serversteuerelement verfügen, können Sie kein Skript-Tag (<%= %>) innerhalb des Steuerelements verwenden. Sie müssen die Eigenschaft aus dem Code hinten einstellen:

TheButton.OnClientClick = "alert(document.getElementById('" + ListBox1.ClientID + "').options.length);";
etwas wie:

OnClientClick="alert(this.options.length);"

Mein Javascript ist etwas rostig, aber kannst du das Schlüsselwort "this" nicht verwenden?