Jak mówi pytanie, jak ustawić wartość kontrolki DropDownList za pomocą jQuery?
jquery
drop-down-menu
ciało
źródło
źródło
$("#mycontrolId").selectmenu('refresh');
aby odzwierciedlić zmianyJeśli pracujesz z indeksem, możesz ustawić wybrany indeks bezpośrednio za pomocą .attr ():Spowoduje to ustawienie pierwszej wartości na liście rozwijanej.Edycja: Tak jak wcześniej to robiłem. Ale wydaje się, że już nie.
Ale jak Han tak miło podkreśla w komentarzach, poprawnym sposobem jest:
źródło
select
tag nie ma żadnego nazwanego atrybutuselectedIndex
. Zamiast tego jest właściwością obiektu DOM. Dlatego kod powinien wyglądać następująco:$("#mydropdownlist").get(0).selectedIndex = index_here;
$("#mydropdownlist").prop('selectedIndex', index_here);
Działa również.Zgodnie z sugestią @Nick Berardi, jeśli zmieniona wartość nie jest odzwierciedlona w interfejsie użytkownika, spróbuj:
źródło
selectmenu
jest niezdefiniowany w mojej wersji jQuery, alechange()
załatwia sprawę.Wypróbuj to bardzo proste podejście:
źródło
$("#mycontrolId").selectmenu('refresh');
$('#mycontrolId').selectmenu('refresh').val(myvalue).attr("selected", "selected");
?Jeśli lista rozwijana to Asp.Net, poniższy kod będzie działał dobrze,
Ale jeśli Twój DropDown to HTML, ten kod będzie działał.
źródło
Najlepsza odpowiedź na pytanie:
na przykład:
lub
źródło
ustaw wartość i aktualizuj listę rozwijaną zdarzeń
źródło
Można to zrobić na wiele sposobów. tutaj jest kilka z nich:
LUB
źródło
Myślę, że to może pomóc:
Jeśli to zrobisz, dodasz element bez tekstu. Tak więc, kiedy klikniesz de combo, nie pojawi się, ale wartość -1 dodałeś później za pomocą $ (". AutoCompleteDepartment"). Val (-1); pozwala kontrolować, czy kombinacja ma prawidłową wartość.
Mam nadzieję, że to pomoże każdemu.
Przepraszam za mój angielski.
źródło
Jeśli potrzebujesz tylko ustawić wartość listy rozwijanej, najlepszym rozwiązaniem jest
Jeśli musisz uruchomić dowolny skrypt po zaktualizowaniu wartości rozwijanej, np. Jeśli ustawisz dowolne zdarzenie onChange w menu rozwijanym i chcesz uruchomić to po aktualizacji listy rozwijanej, musisz użyć tego w ten sposób
źródło
Oto funkcja umożliwiająca szybkie ustawienie wybranej opcji:
Wywołaj tę funkcję z identyfikatorem elementu argumentu i wybraną wartością; lubię to:
Jest to przydatne, gdy trzeba ustawić wiele opcji wyboru.
źródło
W przypadku, gdy ładujesz wszystko
<options ....></options>
przez Ajax,wykonaj następujące czynności, aby to zrobić.
1). Utwórz osobną metodę dla ustawionej wartości listy rozwijanej
Dla np .:
2). Wywołaj tę metodę, gdy zakończy się powodzeniem wywołania ajax wszystkie zadania dołączania html zakończone
Na przykład:
źródło
Ustaw
drop-down
selected
wartość i zaktualizuj zmianyTutaj najpierw ustawiamy wartość,
Model
a następnie aktualizujemy ją na wybranychźródło
// Html Format listy rozwijanej.
// Jeśli chcesz zmienić wybrany element na test2 za pomocą javascript. Spróbuj tego. // ustaw następną opcję, którą chcesz wybrać
źródło
Korzystanie z podświetlonej / zaznaczonej odpowiedzi powyżej działało dla mnie ... oto mały wgląd. Trochę oszukiwałem podczas uzyskiwania adresu URL, ale w zasadzie definiuję adres URL w JavaScript, a następnie ustawiam go za pomocą odpowiedzi jquery z góry:
źródło
Dla osób używających Bootstrap, użyj
$(#elementId').selectpicker('val','elementValue')
zamiast$('#elementId').val('elementValue')
, ponieważ ten ostatni nie aktualizuje wartości w interfejsie użytkownika.Uwaga : Nawet
.change()
funkcja działa, jak sugerowano powyżej w niektórych odpowiedziach, ale wyzwala$('#elementId').change(function(){ //do something })
funkcję.Po prostu opublikuj to tutaj dla osób odwołujących się do tego wątku w przyszłości.
źródło