W mojej aplikacji używam komponentu Bootstrap Dropdown w następujący sposób:
<div class="btn-group">
<button class="btn">Please Select From List</button>
<button class="btn dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu">
<li><a tabindex="-1" href="#">Item I</a></li>
<li><a tabindex="-1" href="#">Item II</a></li>
<li><a tabindex="-1" href="#">Item III</a></li>
<li class="divider"></li>
<li><a tabindex="-1" href="#">Other</a></li>
</ul>
</div>
Chciałbym wyświetlić wybrany element jako etykietę btn. Innymi słowy, zastąp „Wybierz z listy” pozycją, która została wybrana („Pozycja I”, „Pozycja II”, „Pozycja III”).
źródło
Zaktualizowano dla Bootstrap 3.3.4:
Pozwoli to mieć inny wyświetlany tekst i wartość danych dla każdego elementu. Utrzyma również opiekę przy selekcji.
JS:
HTML:
Przykład JS Fiddle
źródło
$(this).text()
.$(this).parents(".dropdown").find('.btn')
w zmiennej zamiast dwukrotnego przeszukiwania DOM przez jquery.Udało mi się nieco poprawić odpowiedź Jai, aby działała w przypadku, gdy masz więcej niż jeden przycisk rozwijany z całkiem dobrą prezentacją, która działa z bootstrapem 3:
Kod dla przycisku
JQuery Snippet
Dodałem również prawy margines 5px do klasy „selection”.
źródło
Ta pojedyncza funkcja jQuery zrobi wszystko, czego potrzebujesz.
źródło
Oto moja wersja, która, mam nadzieję, pozwoli zaoszczędzić trochę czasu :)
jQuery CZĘŚĆ:
CZĘŚĆ HTML:
źródło
Ten działa na więcej niż jednym menu na tej samej stronie. Ponadto dodałem daszek na wybranej pozycji:
źródło
musisz użyć add class
open
in<div class="btn-group open">
i
li
dodatkowoclass="active"
źródło
Dalsza modyfikacja w oparciu o odpowiedź z @Kyle, ponieważ $ .text () zwraca dokładny ciąg, więc znacznik karetki jest drukowany dosłownie, niż jako znacznik, na wypadek, gdyby ktoś chciał zachować kursor nienaruszony na liście rozwijanej.
źródło
Poprawiłem skrypt dla wielu menu rozwijanych na stronie
źródło
Kolejny prosty sposób (Bootstrap 4) na pracę z wieloma listami rozwijanymi
źródło
Wydaje się, że to długi problem. Chcemy tylko zaimplementować tag select w grupie wejściowej. Ale bootstrap tego nie zrobił: https://github.com/twbs/bootstrap/issues/10486
sztuczka polega po prostu na dodaniu klasy „btn-group” do nadrzędnego div
html:
js:
źródło
Po kliknięciu elementu dodaj atrybut danych, taki jak data-selected-item = 'true', i pobierz go ponownie.
Spróbuj więc dodać data-selected-item = 'true' do elementu li , który kliknąłeś
Przed dodaniem tego atrybutu wystarczy usunąć istniejący wybrany element danych z listy. Mam nadzieję, że to ci pomoże
Aby uzyskać informacje na temat użycia atrybutów danych w jQuery, zobacz dane jQuery
źródło
var test = $('ul.dropdown-menu li').data('selected-item').find('a').text(); $("#nbtn").html(test);
czy możesz dać mi znać, co robię źle?Musiałem umieścić kilka wyświetlanych skryptów JavaScript powyżej w kodzie „document.ready”. W przeciwnym razie nie działały. Prawdopodobnie dla wielu oczywiste, ale nie dla mnie. Więc jeśli testujesz, spójrz na tę opcję.
źródło
Na przykład:
HTML:
Używam nowego elementu BtnCaption do zmiany tylko tekstu przycisku.
Wklej do
$(document).ready(function () {}
następującego tekstuJavaScript:
:not(.disabled)
nie zezwalaj na używanie wyłączonych elementów menuźródło