Zastanawiałem się, czy jest możliwe, aby jQuery wybrał <option>
, powiedzmy, czwarty element w rozwijanym polu?
<select>
<option></option>
<option></option>
<option></option>
<option></option>
<option></option>
</select>
Chcę, aby użytkownik kliknął łącze, a następnie <select>
zmieniło wartość pola, tak jakby użytkownik wybrał je, klikając <option>
.
javascript
jquery
html
drop-down-menu
html-select
rozsiany
źródło
źródło
Odpowiedzi:
Co powiesz na
przykład pod adresem http://www.jsfiddle.net/gaby/CWvwn/
w nowoczesnych wersjach jquery należy używać
.prop()
zamiast.attr()
przykład pod adresem http://jsfiddle.net/gaby/CWvwn/1763/
źródło
selectElement.selectedIndex = index;
to właśnie Jack ma na myśli.selectedIndex
nie można go używać do wielokrotnego wyboru, gdymultiple
używany jest atrybut. A normalnym ( html ) sposobem ustawiania wybranych elementów jestselected
atrybutoption
elementów.selected
właściwości każdego odpowiedniegooptions
elementu natrue
(i opcjonalnie pozostałychfalse
jawnie). Wielokrotne wybory są w rzeczywistości dość nieprzyjemne :)onchange
zdarzenie nigdy nie jest wyzwalane, gdy wartość zostanie zmieniona programowo. Można dodać.trigger('change')
na końcu również ognia zdarzenie ( choć będzie to ogień niezależnie od wartości które faktycznie zmieniło )Rozwiązanie:
źródło
selected
opcji w kodzie HTML.Elementy wyboru HTML mają
selectedIndex
właściwość, do której można zapisać w celu wybrania określonej opcji:Używając zwykłego JavaScript można to osiągnąć przez:
źródło
.trigger()
to, ale ponieważ robisz to już z kodem, łatwo byłoby również samodzielnie wywołać procedury obsługi zmian.Zrobiłbym to w ten sposób
źródło
jeśli twoje opcje mają wartość, możesz to zrobić:
„select” byłby identyfikatorem wybranego elementu lub selektora klasy. lub jeśli jest tylko jeden wybór, możesz użyć tagu tak, jak w przykładzie.
źródło
Najprostszym sposobem jest
val(value)
funkcja:Aby otrzymać wybraną wartość, nie podajesz żadnych argumentów:
Jeśli tak
<option value="valueToSelect">...</option>
, możesz:PRÓBNY
źródło
Użyj poniższego kodu, jeśli chcesz wybrać opcję o określonej wartości:
źródło
źródło
Wolę nth-child () od eq (), ponieważ używa indeksowania opartego na 1 zamiast na 0, co jest nieco łatwiejsze dla mojego mózgu.
źródło
W przypadku elementu „” zwykle używamy atrybutu „wartość”. Ułatwi to wtedy ustawienie:
źródło
Spróbuj tego:
Pozdrowienia!
źródło
odpowiedz z id:
źródło
Jedynym zastrzeżeniem jest to, że jeśli masz obserwację javascript dla zdarzenia zmiany select / option, musisz dodać,
.trigger('change')
aby kod stał się.ponieważ tylko wywołanie
.attr('selected', 'selected')
nie wyzwala zdarzeniaźródło