Ich kämpfe derzeit mit Dropdowns und möchte meine Erfahrungen teilen:
Es gibt bestimmte Situationen, in denen <select>
keine Verwendung möglich ist und die mit Dropdown-Liste "emuliert" werden müssen.
Wenn Sie beispielsweise Bootstrap-Eingabegruppen erstellen möchten, z. B. Schaltflächen mit Dropdowns (siehe http://getbootstrap.com/components/#input-groups-buttons-dropdowns ). <select>
Wird in Eingabegruppen leider nicht unterstützt, wird es nicht richtig gerendert.
Oder hat das schon jemand gelöst? Die Lösung würde mich sehr interessieren.
Und um es noch komplizierter zu machen, können Sie nicht einfach verwenden $(this).text()
, um den in der Dropdown-Liste ausgewählten Benutzer zu erfassen, wenn Sie Glypicons oder fantastische Symbole als Inhalt für die Dropdown-Liste verwenden. Beispiel:
<li id="someId"><a href="#0"><i class="fa fa-minus"></i></a></li>
Da in diesem Fall kein Text vorhanden ist und Sie einen Text hinzufügen, wird dieser auch im Dropdown-Element angezeigt. Dies ist unerwünscht.
Ich habe zwei mögliche Lösungen gefunden:
1) Verwenden Sie $(this).html()
diese Option , um den Inhalt des ausgewählten <li>
Elements abzurufen und anschließend zu untersuchen. Sie erhalten jedoch so etwas wie etwas, <a href="#0"><i class="fa fa-minus"></i></a>
sodass Sie damit spielen müssen, um das zu extrahieren, was Sie benötigen.
2) Verwenden $(this).text()
und verbergen Sie den Text im Element in ausgeblendeter Spanne :
<li id="someId"><a href="#0"><i class="fa fa-minus"><span class="hidden">text</span></i></a></li>
. Für mich ist dies eine einfache und elegante Lösung. Sie können jeden gewünschten Text einfügen, der Text wird ausgeblendet und Sie müssen keine Transformationen des $(this).html()
Ergebnisses wie in Option 1) durchführen, um das zu erhalten, was Sie benötigen.
Ich hoffe es ist klar und kann jemandem helfen :-)