Mam kontrolę wyboru, aw zmiennej javascript mam ciąg tekstowy.
Za pomocą jQuery chcę ustawić wybrany element formantu select jako element z opisem tekstowym, który mam (w przeciwieństwie do wartości, której nie mam).
Wiem, że ustawienie wartości jest dość proste. na przykład
$("#my-select").val(myVal);
Ale jestem trochę zakłopotany robieniem tego za pomocą opisu tekstowego. Wydaje mi się, że musi istnieć sposób na wydobycie wartości z opisu tekstowego, ale mój mózg jest zbyt piątek po południu, aby móc to wypracować.
javascript
jquery
DanSingerman
źródło
źródło
Odpowiedzi:
Wybierz według opisu dla jQuery v1.6 +
Wersje jQuery poniżej 1.6 i większe lub równe 1.4
Zwróć uwagę, że chociaż to podejście będzie działać w wersjach powyżej 1.6, ale mniejszych niż 1.9, to jest ono przestarzałe od 1.6. Nie będzie działać w jQuery 1.9+.
Poprzednie wersje
val()
powinien obsługiwać oba przypadki.źródło
value
jeśli atrybut został określony, i wybierz tylko tekstem, jeślivalue
atrybutu brakuje. W tym przykładzie$('select').val('Two')
wybiorę drugą opcję w 1.3.x, ale nic nie zrobimy w 1.4.x.Nie testowałem tego, ale to może działać dla ciebie.
źródło
Spróbuj tego ..., aby wybrać opcję z tekstem myText
źródło
$("#my-Select option[text=" + myText +"]").get(0).selected = true;
Od czasu do czasu musiałem nawet przejść do klasycznego stylu: (....prop
zamiast.attr
; przyczyną zmiany jest to, że w 1.9 jQuery wyłączył stare hacki, które pozwalają.attr
na zmianę niektórych właściwości DOM, a także atrybutów HTML. (Google,javascript dom properties vs attributes
jeśli nie znasz rozróżnienia.).prop('selected', true)
zamiast.attr('selected', 'selected')
do kompatybilności jQuery 1.9+.Robię to w ten sposób (jQuery 1.9.1)
Uwaga: nie zapomnij o zmianie (), musiałem za długo szukać :)
źródło
zwróci wartość pierwszej opcji zawierającej opis tekstowy. Testowałem to i działa.
źródło
Aby uniknąć komplikacji wersji jQuery, szczerze polecam użycie jednej z tych naprawdę prostych funkcji javascript ...
źródło
Wiem, że to stary post, ale nie udało mi się go wybrać tekstem za pomocą jQuery 1.10.3 i powyższych rozwiązań. Skończyło się na użyciu następującego kodu (odmiana rozwiązania Spoulsona):
Mam nadzieję, że to komuś pomoże.
źródło
Ta linia działała:
źródło
Instrukcja if pasuje dokładnie do „dwa” i „dwa trzy” nie zostanie dopasowana
źródło
Najłatwiejszym sposobem w wersji 1.7+ jest:
1.9+
Testowane i działa.
źródło
.prop
zmieniać właściwości DOM, a nie.attr
(dotyczy to atrybutów HTML / DOM). Zobacz stackoverflow.com/q/5874652/1709587Oto bardzo prosty sposób. proszę użyć tego
źródło
spójrz na wtyczkę selectedbox jquery
Wybierz opcje według wartości, używając łańcucha jako parametru
$("#myselect2").selectOptions("Value 1");
lub wyrażenia regularnego$("#myselect2").selectOptions(/^val/i);
.Możesz także wyczyścić już wybrane opcje:
$("#myselect2").selectOptions("Value 2", true);
źródło
Tylko na marginesie. Moja wybrana wartość nie została ustawiona. I przeszukałem całą sieć. Właściwie musiałem wybrać wartość po oddzwonieniu z usługi internetowej, ponieważ otrzymywałem z niej dane.
Odświeżenie selektora było jedyną rzeczą, której mi brakowało.
źródło
Zauważyłem, że korzystając z
attr
niego skończysz z wieloma opcjami wybranymi, gdy nie chcesz - rozwiązaniem jest użycieprop
:$("#myDropDown option:text=" + myText +"").prop("selected", "selected");
źródło
Miałem problem z powyższymi przykładami, a problem był spowodowany faktem, że moje wartości pola wyboru są wypełnione ciągami o stałej długości 6 znaków, ale przekazywany parametr nie był stałej długości.
Mam funkcję rpad, która wyrówna ciąg znaków do określonej długości i określonego znaku. Po uzupełnieniu parametru działa.
źródło
źródło
Ta zaakceptowana odpowiedź nie wydaje się poprawna, podczas gdy .val ('newValue') jest poprawny dla funkcji, próba odzyskania zaznaczenia po nazwie nie działa dla mnie, musiałem użyć identyfikatora i nazwy klasy, aby uzyskać mój element
źródło
Oto prosta opcja. Wystarczy ustawić opcję listy, a następnie ustawić tekst jako wybraną wartość:
źródło
Pobierz dzieci z wybranego pola; przechodzić przez nie; gdy znajdziesz ten, który chcesz, ustaw go jako wybraną opcję; zwraca false, aby zatrzymać zapętlenie.
źródło