Używam wtyczki Bootstrap-Select w następujący sposób:
HTML :
<select name="selValue" class="selectpicker">
<option value="1">Val 1</option>
<option value="2">Val 2</option>
<option value="3">Val 3</option>
<option value="4">Val 4</option>
</select>
JavaScript :
$('select[name=selValue]').selectpicker();
Teraz chcę ustawić wartość wybraną do tego wyboru po kliknięciu przycisku ... coś takiego:
$('#mybutton').click(function(){
$('select[name=selValue]').val(1);
});
Ale nic się nie dzieje.
Jak mogę to osiągnąć?
Odpowiedzi:
Wartość jest poprawnie wybrana, ale jej nie widzieliście, ponieważ wtyczka ukrywa prawdziwy wybór i pokazuje przycisk z nieuporządkowaną listą, więc jeśli chcesz, aby użytkownik zobaczył wybraną wartość na zaznaczeniu, możesz zrobić coś takiego :
Edytować:
Jak wskazuje @blushrt, lepszym rozwiązaniem jest:
Edycja 2:
Aby wybrać wiele wartości, przekaż je jako tablicę.
źródło
$('select[name=selValue]').val(1);$('.selectpicker').selectpicker('refresh');
ten sposób zmieniasz tylko ukryty wybór, wywołanie selektora wyboru („odśwież”) przerysowuje przycisk.To wszystko, co musisz zrobić. Nie ma potrzeby, aby bezpośrednio zmieniać wygenerowany kod HTML narzędzia selectpicker, wystarczy zmienić ukryte pole wyboru, a następnie wywołać funkcję selectpicker („odśwież”).
źródło
$('.selectpicker').selectpicker('refresh');
może zabić twój występ, jeśli masz wielu selekcjonerów na jednej stronieźródło
Odświeżanie nie jest potrzebne, jeśli parametr-val jest używany do ustawiania wartości, zobacz fiddle . Użyj nawiasów jako wartości, aby włączyć wiele wybranych wartości.
źródło
To zadziałało dla mnie.
źródło
W rzeczywistości twoja wartość jest ustawiona, ale selektor nie jest odświeżany
Jak możesz przeczytać w dokumentacji
https://silviomoreto.github.io/bootstrap-select/methods/#selectpickerval
Byłby to właściwy sposób
W przypadku wielu wartości można dodać tablicę wartości
źródło
Możesz ustawić wybraną wartość, wywołując metodę val na elemencie.
Spowoduje to zaznaczenie wszystkich elementów w wielokrotnym wyborze.
szczegóły są dostępne na stronie: https://silviomoreto.github.io/bootstrap-select/methods/
źródło
$('selector').selectpicker('val',value);
zamiast selektora możesz podać selektorowi klasę lub id, na przykład:
$('#mySelect').selectpicker('val',your_value)
źródło
źródło
Niewielkie odchylenie odpowiedzi blushrt, gdy nie masz „zakodowanych na stałe ” wartości opcji (np. 1, 2, 3, 4 itd.)
Powiedzmy, że renderujesz a
<select>
z wartościami opcji będącymi identyfikatorami GUID niektórych użytkowników. Wtedy będziesz musiał jakoś wyodrębnić wartość opcji, aby ustawić ją na<select>
.Poniżej wybieramy pierwszą opcję wyboru.
HTML :
JavaScript :
Użyliśmy tego w wyborze ze słowem kluczowym multiple
<select multiple>
. W tym przypadku nic nie jest wybrane domyślnie, ale chcieliśmy, aby zawsze był wybrany pierwszy element.źródło
W oparciu o świetną odpowiedź @blushrt zaktualizuję tę odpowiedź. Po prostu używam -
działa, jeśli wstępnie załadowałeś wszystko, czego potrzebujesz do selektora.
źródło
źródło
Z „0” jest wartością pozycji, którą chcesz wybrać
źródło
Innym sposobem jest użycie tego słowa kluczowego, możesz po prostu pobrać obiekt w tym i manipulować jego wartością. Np .:
źródło
Możesz też po prostu nazwać to dla wielu wartości
$(<your select picker>).selectpicker("val", ["value1", "value2"])
Możesz znaleźć więcej tutaj https://developer.snapappointments.com/bootstrap-select/methods/
źródło
Po prostu umieść opcję: wybraną, aby uzyskać wartość, ponieważ selektor ładowania początkowego zmienia się i pojawia się w inny sposób. Ale wybierz nadal tam wybrane
źródło
W takim razie identyfikator użytkownika dla elementu
źródło
użyj tego i zadziała:
źródło