Mam następujący <select>
element HTML :
<select id="leaveCode" name="leaveCode">
<option value="10">Annual Leave</option>
<option value="11">Medical Leave</option>
<option value="14">Long Service</option>
<option value="17">Leave Without Pay</option>
</select>
Używając funkcji JavaScript z leaveCode
liczbą jako parametrem, jak wybrać odpowiednią opcję z listy?
javascript
html
dom
brasskazoo
źródło
źródło
Odpowiedzi:
Możesz użyć tej funkcji:
źródło
element.dispatchEvent(new Event('change'));
Jeśli używasz jQuery, możesz to również zrobić:
Spowoduje to wybranie
<option>
wartości 14.W przypadku zwykłego Javascript można to również osiągnąć dwiema
Document
metodami :Za pomocą
document.querySelector
można wybrać element oparty na selektorze CSS:Stosując bardziej ugruntowane podejście
document.getElementById()
, które, jak sugeruje nazwa funkcji, pozwala wybrać element na podstawie jegoid
:Możesz uruchomić poniższy kod, aby zobaczyć te metody i funkcję jQuery w akcji:
Pokaż fragment kodu
źródło
źródło
Nie odpowiadam na pytanie, ale możesz także wybrać według indeksu, gdzie i jest indeksem elementu, który chcesz wybrać:
Możesz także przewijać elementy do wyboru, wyświetlając wartość za pomocą pętli:
źródło
Porównałem różne metody:
Porównanie różnych sposobów ustawiania wartości wyboru za pomocą JS lub jQuery
kod:
Wyjście na selekcję z ~ 4000 elementów:
W przeglądarce Firefox 10. Uwaga: jedynym powodem, dla którego przeprowadziłem ten test, było to, że jQuery działał bardzo słabo na naszej liście z ~ 2000 pozycji (miały dłuższe teksty między opcjami). Mieliśmy około 2 s opóźnienia po val ()
Uwaga: ustawiam wartość w zależności od wartości rzeczywistej, a nie wartości tekstowej.
źródło
To powinno ustawić opcję „Urlop roczny”
źródło
Wypróbowałem powyższe rozwiązania oparte na JavaScript / jQuery, takie jak:
i
w aplikacji AngularJS, gdzie była wymagana <select>.
Żadne z nich nie działa, ponieważ sprawdzanie poprawności formularza AngularJS nie jest uruchamiane. Mimo że wybrano właściwą opcję (i jest wyświetlana w formularzu), dane wejściowe pozostały niepoprawne (klasy N-nieskazitelne i N-niepoprawne nadal istnieją).
Aby wymusić sprawdzanie poprawności AngularJS, wywołaj jQuery change () po wybraniu opcji:
i
źródło
źródło
Najłatwiejszy sposób, jeśli potrzebujesz:
1) Kliknij przycisk, który określa opcję wyboru
2) Przejdź do innej strony, na której wybierz opcję
3) Wybierz tę wartość opcji na innej stronie
1) linki do przycisków (powiedzmy na stronie głównej)
(gdzie contact.php to twoja strona z wybranymi opcjami. Zwróć uwagę, że URL strony ma opcję? = 1 lub 2)
2) umieść ten kod na drugiej stronie (moja sprawa contact.php )
3) wybierz wartość opcji w zależności od klikniętego przycisku
.. i tak dalej.
Jest to więc prosty sposób na przekazanie wartości do innej strony (z listą opcji wyboru) przez polecenie GET w adresie URL. Bez formularzy, bez dokumentów tożsamości. Tylko 3 kroki i działa idealnie.
źródło
Dlaczego nie dodać zmiennej dla identyfikatora elementu i nie nadać jej funkcji wielokrotnego użytku?
źródło
Załóżmy, że Twój formularz ma nazwę form1 :
źródło
Powinno być coś w tym stylu:
źródło
źródło
Jeśli używasz PHP, możesz spróbować czegoś takiego:
źródło
Najprawdopodobniej chcesz to:
LUB
źródło
using JavaScript
.Obawiam się, że nie jestem w stanie przetestować tego w tej chwili, ale w przeszłości uważam, że musiałem nadać każdej etykiecie opcji identyfikator, a potem zrobiłem coś takiego:
Jeśli to nie zadziała, być może zbliży Cię do rozwiązania: P
źródło
select()
metody (nie określa żadnych dodatkowych metod ponad standardowego zestawu na temat wszystkich elementów HTML). Można jednak ustawićselected
właściwość na true.