Próbuję pobrać i ustawić wybraną wartość wybranego elementu (lista rozwijana) z jQuery.
dla pobierania próbowałem $("#myId").find(':selected').val()
, $("#myId").val()
ale oba zwracają undefined.
Każdy wgląd w ten problem byłby bardzo mile widziany.
Odpowiedzi:
Sposób, w jaki to masz, jest w tej chwili poprawny. Albo identyfikator elementu select nie jest tym, co mówisz, albo masz problemy z domeną dom.
Sprawdź identyfikator elementu, a także sprawdź poprawność znaczników tutaj, w W3c.
Bez prawidłowego dom jQuery nie może działać poprawnie z selektorami.
Jeśli identyfikatory są prawidłowe, a Twoja domena jest poprawna, obowiązują następujące zasady:
Odczytać Wybierz wartość opcji
Aby ustawić Wybierz wartość opcji
Aby przeczytać wybrany tekst
źródło
aby pobrać / ustawić rzeczywistą właściwość selectedIndex elementu select, użyj:
źródło
.attr()
i.prop()
nie są synonimami. Będzie działać w niektórych przypadkach, gdy atrybut jest również właściwością, np..attr('id')
Jest równy.prop('id')
. W tym przypadku.prop('selectedIndex')
jest równa.get(0).selectedIndex
.$('#myId').val()
powinienem to zrobić, w przeciwnym razie spróbuję:źródło
Podczas ustawiania
JQM
nie zapomnij zaktualizowaćUI
:źródło
$("#myId").val()
powinno działać, jeślimyid
jest to identyfikator elementu wyboru!To ustawiłoby wybrany element:
$("#myId").val('VALUE');
źródło
Załóżmy, że utworzyłeś listę rozwijaną za pomocą tagu SELECT, jak poniżej,
Teraz, jeśli chcesz zobaczyć, jaka jest wybrana wartość z listy rozwijanej za pomocą JQuery, po prostu umieść następujący wiersz, aby pobrać tę wartość.
będzie działać dobrze.
źródło
Wiem, że to jest stare, ale właśnie spędziłem trochę czasu z Razorem, nie mogłem go zmusić do pracy, bez względu na to, jak bardzo się starałem. Wracane jako „niezdefiniowane” bez względu na to, czy użyłem „tekstu” czy „html” jako atrybutu. Na koniec dodałem atrybut „data-value” do opcji i odczytałem to dobrze.
źródło
$ ("opcja #myId: wybrana") .text (); poda tekst, który wybrałeś w rozwijanym elemencie. tak czy inaczej możesz to zmienić na .val (); aby uzyskać jego wartość. sprawdź poniższe kodowanie
źródło
Spróbuj tego
źródło