Zwykle zwracam $("#id").val()
wartość wybranej opcji, ale tym razem nie działa. Wybrany tag ma identyfikatoraioConceptName
Kod HTML
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
źródło
źródło
#aioConceptName
value
atrybutu na tych<option>
s, prawda?$("#aioConceptName").val()
zwracachoose io
.Odpowiedzi:
W przypadku opcji rozwijanych prawdopodobnie potrzebujesz czegoś takiego:
Powodem
val()
tego nie jest to, że kliknięcie opcji nie zmienia wartości menu rozwijanego - po prostu dodaje:selected
właściwość do wybranej opcji, która jest potomkiem menu rozwijanego.źródło
.val()
powinien działać w twoim przypadku - musisz popełnić błąd w innym miejscu.val()
dlaczego nie korzystaćvar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... więcej kodu się dzieje ... * /var selectedText = mySelect.find(':selected').text();
Ustaw wartości dla każdej opcji
$('#aioConceptName').val()
nie działa, ponieważ.val()
zwracavalue
atrybut. Aby działało poprawnie,value
atrybuty muszą być ustawione na każdym z nich<option>
.Teraz możesz zadzwonić
$('#aioConceptName').val()
zamiast:selected
sugerować inne voodoo.źródło
$('#aioConceptName').val()
zwraca null / „undefined”prompt
opcją specjalną<option>Please select an option</option>
. W moim przypadku nie było problemu z dodaniem pustego atrybutu wartości,<option value="">Please...</option>
ale wydaje mi się, że w niektórych przypadkach brak atrybutu wartości ma sens. Ale +1, ponieważ twoje słowa vodoo rozśmieszyły mnie.val()
zaznaczonovalue
zamiast tekstu w środkuoption
? Czyli wybiera1
zamiastroma
..val()
. Jeśli chcesz manipulować / używać tekstu, użyj$(":selected).text()
lub ustaw wartość i tekst na takie same.Natknąłem się na to pytanie i opracowałem bardziej zwięzłą wersję odpowiedzi Elliota BOnneville'a:
lub ogólnie:
Oszczędza to dodatkowego połączenia jQuery, zaznacza wszystko w jednym ujęciu i jest bardziej przejrzyste (moja opinia).
źródło
querySelectorAll()
metodę DOM (patrz dokumenty jQuery ). Powinno więc być wolniejsze niż rozwiązanie Eliota ..find(':selected')
ponieważ wtedy możesz zadzwonić z oddzwaniania dołączonego do wydarzenia ... jak$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Wypróbuj to za wartość ...
lub to dla tekstu ...
źródło
Jeśli jesteś w kontekście zdarzenia, w jQuery możesz pobrać wybrany element opcji za pomocą: w
$(this).find('option:selected')
ten sposób:Edytować
Jak wspomniano przez PossessWithin , moja odpowiedź wystarczy odpowiedzieć na pytanie: jak wybrać wybraną „opcję”.
Następnie, aby uzyskać wartość opcji, użyj
option.val()
.źródło
$(this).find('option:selected').val()
na końcu, aby uzyskać wartość elementu opcjonalnego lub$(this).find('option:selected').text()
tekst. :)Czy rozważałeś użycie zwykłego starego javascript?
Zobacz także Uzyskiwanie opcji tekst / wartość za pomocą JavaScript
źródło
źródło
Odczytywanie wartości (nie tekstu) zaznaczenia:
Jak wyłączyć wybór? w obu wariantach wartość można zmienić za pomocą:
ZA
Użytkownik nie może wchodzić w interakcje z menu rozwijanym. I nie wie, jakie mogą być inne opcje.
b
Użytkownik widzi opcje w menu, ale wszystkie są wyłączone:
W takim przypadku
$("#Status").val()
będzie działać tylko dla wersji jQuery mniejszych niż1.9.0
. Wszystkie inne warianty będą działać.Jak zaktualizować wyłączony wybór?
Z kodu z tyłu możesz nadal aktualizować wartość w swoim wyborze. Jest wyłączony tylko dla użytkowników:
W niektórych przypadkach może być konieczne uruchomienie zdarzeń:
źródło
źródło
:selected
… val () lub text () nie działa poprawnie na wielu opcjach wyboru, tylko jeśli utworzona jest z niej jakaś tablicamap()
.powinieneś użyć tej składni:
Więc wypróbuj ten kod:
możesz przetestować w Fiddle: http://jsfiddle.net/PJT6r/9/
zobacz o tej odpowiedzi w tym poście
źródło
Korzystając z jQuery, wystarczy dodać
change
zdarzenie i uzyskać wybraną wartość lub tekst w tym module obsługi.Jeśli potrzebujesz zaznaczonego tekstu, użyj tego kodu:
Lub jeśli potrzebujesz wybranej wartości, użyj tego kodu:
źródło
Użyj również
jQuery.val()
funkcji dla wybranych elementów:źródło
Dla każdego, kto odkrył, że najlepsza odpowiedź nie działa.
Spróbuj użyć:
Działa dla mnie w ostatnich projektach, więc warto na to spojrzeć.
źródło
To powinno działać:
źródło
Prosto i całkiem łatwo:
Twoja lista rozwijana
Kod Jquery, aby uzyskać wybraną wartość
źródło
Możesz spróbować debugować w ten sposób:
źródło
Aby uzyskać wartość wybranego tagu:
A jeśli chcesz otrzymać tekst, użyj tego kodu:
Na przykład:
źródło
Jeśli chcesz chwycić atrybut „wartość” zamiast węzła tekstowego, zadziała to:
źródło
spróbuj tego
źródło
Wyobraź sobie DDL jako tablicę z indeksami, wybierasz jeden indeks. Wybierz ten, który chcesz ustawić za pomocą JS.
źródło
Mam nadzieję, że to również pomaga lepiej zrozumieć i pomaga wypróbować to poniżej,
Aby uzyskać więcej informacji, prosimy http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
źródło
Możesz użyć
$("#drpList").val();
źródło
aby pobrać zaznaczenie o tej samej klasie = nazwa, możesz to zrobić, aby sprawdzić, czy wybrano opcję wyboru.
źródło
Miałem ten sam problem i zorientowałem się, dlaczego nie działa w mojej sprawie
. Strona HTML została podzielona na różne fragmenty HTML i stwierdziłem, że mam inne pole wejściowe o tym samym identyfikatorze
select
, co powoduje, żeval()
zawsze jest pustaMam nadzieję, że pozwoli to zaoszczędzić dzień każdemu, kto ma podobny problem.
źródło
aby użyć $ („# id”). val, powinieneś dodać wartość do opcji takiej jak ta:
w przeciwnym razie możesz użyć
Chciałbym, żeby to pomogło ...
źródło
Oto proste rozwiązanie tego problemu.
źródło
var selectedaioConceptName = $('#aioConceptName option:selected').val();
jest lepsze niż użycie innego find ()Prawdopodobnie najlepszym rozwiązaniem dla tego rodzaju scenariusza jest użycie metody zmiany jQuery w celu znalezienia aktualnie wybranej wartości, na przykład:
Wolę tę metodę, ponieważ możesz następnie wykonywać funkcje dla każdej wybranej opcji w danym polu wyboru.
Mam nadzieję, że to pomaga!
źródło
Zwykle trzeba nie tylko uzyskać wybraną wartość, ale także wykonać akcję. Dlaczego więc nie uniknąć całej magii jQuery i po prostu przekazać wybraną wartość jako argument do wezwania do działania?
źródło
Możesz wybrać za pomocą dokładnie wybranej opcji: Poniżej podany zostanie tekst wewnętrzny
Podczas gdy poniżej da ci wartość.
źródło