Jak uzyskać wybraną wartość z listy rozwijanej za pomocą JavaScript?
Wypróbowałem poniższe metody, ale wszystkie zwracają wybrany indeks zamiast wartości:
var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
javascript
html-select
Ręka ognia
źródło
źródło
Odpowiedzi:
Jeśli masz element select, który wygląda następująco:
Uruchamianie tego kodu:
Stałaby
strUser
się2
. Jeśli tak naprawdę chcesztest2
, zrób to:Co by
strUser
byłotest2
źródło
onchange
:)var strUser = e.options[e.selectedIndex].value;
dlaczego nie tylkovar strUser = e.value ?
var e = document.getElementById("ddlViewBy").value;
e.target.options[e.target.selectedIndex].text
, nie wiem, dlaczego jest źle we wszystkich odpowiedziach tutaj.Zwykły JavaScript:
jQuery:
AngularJS : ( http://jsfiddle.net/qk5wwyct ):
źródło
element.options[e.selectedIndex].value
musi byćelement.options[element.selectedIndex].value
e.target.options[e.target.selectedIndex].text
, nie wiem, dlaczego jest źle we wszystkich odpowiedziach tutaj.Jest to poprawne i powinno dać ci wartość. Czy to ten tekst, którego szukasz?
Więc masz jasną terminologię:
Ta opcja ma:
źródło
e.target.options[e.target.selectedIndex].text
, nie wiem, dlaczego jest źle we wszystkich odpowiedziach tutaj.Poniższy kod przedstawia różne przykłady związane z uzyskiwaniem / wprowadzaniem wartości z pól wejściowych / zaznaczających za pomocą JavaScript.
Link źródłowy
Działająca wersja JavaScript i jQuery
Poniższy skrypt pobiera wartość wybranej opcji i umieszcza ją w polu tekstowym 1
Poniższy skrypt pobiera wartość z pola tekstowego 2 i ostrzega o jej wartości
Poniższy skrypt wywołuje funkcję z funkcji
źródło
onchange=run(this.value)
lub(this.text)
może być bardziej korzystne.źródło
Jeśli kiedykolwiek natkniesz się na kod napisany wyłącznie dla programu Internet Explorer, możesz zobaczyć:
Uruchomienie powyższego w przeglądarce Firefox i in. Spowoduje wyświetlenie błędu „nie jest funkcją”, ponieważ program Internet Explorer pozwala na uniknięcie używania () zamiast []:
Prawidłowym sposobem jest użycie nawiasów kwadratowych.
źródło
Każde pole wejściowe / formularza może używać słowa kluczowego „this”, gdy uzyskujesz do niego dostęp z wnętrza elementu. Eliminuje to potrzebę lokalizowania formularza w drzewie dom, a następnie lokalizowania tego elementu wewnątrz formularza.
źródło
Początkujący prawdopodobnie będą chcieli uzyskiwać dostęp do wartości z zaznaczenia za pomocą atrybutu NAZWA, a nie atrybutu ID. Wiemy, że wszystkie elementy formularza wymagają nazw, nawet zanim otrzymają identyfikatory.
Dodam więc
getElementByName()
rozwiązanie tylko dla nowych programistów.NB nazwy elementów formularza będą musiały być unikalne, aby formularz był użyteczny po opublikowaniu, ale DOM może pozwolić na współdzielenie nazwy przez więcej niż jeden element. Z tego powodu rozważ dodanie ID do formularzy, jeśli możesz, lub wyraźne nazwy elementów formularza
my_nth_select_named_x
imy_nth_text_input_named_y
.Przykład użycia
getElementByName
:źródło
Są dwa sposoby, aby to zrobić albo za pomocą JavaScript lub jQuery.
JavaScript:
LUB
jQuery:
źródło
Po prostu użyj
$('#SelectBoxId option:selected').text();
za uzyskanie tekstu zgodnie z listą$('#SelectBoxId').val();
w celu uzyskania wybranej wartości indeksuźródło
Poprzednie odpowiedzi wciąż pozostawiają pole do poprawy ze względu na możliwości, intuicyjność kodu i użycie
id
versusname
. Można odczytać trzy dane wybranej opcji - numer indeksu, wartość i tekst. Ten prosty kod dla różnych przeglądarek wykonuje wszystkie trzy czynności:Demo na żywo: http://jsbin.com/jiwena/1/edit?html,output .
id
powinien być stosowany do makijażu. Do celów funkcjonalnychname
jest nadal aktualny, również w HTML5 i nadal powinien być używany. Wreszcie, pamiętaj o użyciu nawiasów kwadratowych w porównaniu do okrągłych w niektórych miejscach. Jak wyjaśniono wcześniej, tylko (starsze wersje) Internet Explorera będą akceptować okrągłe wersje we wszystkich miejscach.źródło
Korzystanie z jQuery:
źródło
Innym rozwiązaniem jest:
źródło
Przykładowy sposób działania:
Uwaga: Wartości nie zmieniają się wraz ze zmianą menu rozwijanego, jeśli potrzebujesz tej funkcji, należy wprowadzić zmianę onClick.
źródło
Możesz użyć
querySelector
.Na przykład
źródło
Mam nieco inny pogląd na to, jak to osiągnąć. Zwykle robię to w następujący sposób (jest to łatwiejszy sposób i działa z każdą przeglądarką, o ile wiem):
źródło
W 2015 r. W przeglądarce Firefox działa również:
źródło
Aby postępować zgodnie z poprzednimi odpowiedziami, robię to jako jeden wiersz. Służy do uzyskania rzeczywistego tekstu wybranej opcji. Istnieją dobre przykłady uzyskania numeru indeksu. (A dla tekstu chciałem tylko pokazać w ten sposób)
W niektórych rzadkich przypadkach może być konieczne użycie nawiasów, ale byłoby to bardzo rzadkie.
Wątpię, aby proces ten przebiegał szybciej niż wersja dwuliniowa. Po prostu lubię konsolidować mój kod tak bardzo, jak to możliwe.
Niestety nadal pobiera to element dwukrotnie, co nie jest idealne. Metoda, która chwyta element tylko raz, byłaby bardziej przydatna, ale jeszcze tego nie zorientowałem, jeśli chodzi o robienie tego z jednym wierszem kodu.
źródło
Oto linia kodu JavaScript:
Zakładając, że rozwijane menu o nazwie lista
name="list"
i zawarte w formularzu z atrybutem nazwyname="form1"
.źródło
var as = document.form1.ddlViewBy.value;
...”Powinieneś używać tego
querySelector
do osiągnięcia. To również ustandaryzuje sposób uzyskiwania wartości z elementów formularza.var dropDownValue = document.querySelector('#ddlViewBy').value;
Fiddle: https://jsfiddle.net/3t80pubr/
źródło
Nie wiem, czy to ja nie dostaję właściwego pytania, ale to po prostu zadziałało: użycie zdarzenia onchange () w twoim pliku HTML, np.
// javascript
To da ci dowolną wartość z wybranego menu rozwijanego na kliknięcie
źródło
Najprostszym sposobem na to jest:
źródło
Oto prosty sposób na zrobienie tego w funkcji onchange:
event.target.options[event.target.selectedIndex].dataset.name
źródło
Po prostu zrób:
document.getElementById('idselect').options.selectedIndex
Wtedy dostanę wybierz wartość indeksu, zaczynając od 0.
źródło
Próbować
Pokaż fragment kodu
źródło
Stwórz menu rozwijane z kilkoma opcjami (Tyle, ile chcesz!)
Zrobiłem trochę zabawne. Oto fragment kodu:
tak, fragment kodu zadziałał
źródło