$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
Najwyraźniej isChecked
nie działa. Więc moje pytanie brzmi: jaki jest właściwy sposób, aby to zrobić? Dzięki.
this.selected
), powinieneś ominąć go za pomocą jQuery ($(this).prop("selected")
), ale oba będą działać dla Ciebie.Odpowiedzi:
AKTUALIZACJA
Bardziej bezpośrednią metodą jQuery do wybranej opcji byłaby:
Odpowiadając na pytanie
.is(':selected')
, szukasz:Sposób inny niż jQuery (prawdopodobnie najlepsza praktyka) to:
Chociaż, jeśli szukasz tylko wybranej wartości, spróbuj:
Jeśli szukasz tekstu wybranej wartości, wykonaj:
Sprawdź: http://api.jquery.com/selected-selector/
Następnym razem poszukaj podwójnych pytań SO:
Pobierz aktualnie wybraną opcję lub Ustaw wybraną opcję lub Jak uzyskać $ (tę) wybraną opcję w jQuery? lub opcja [selected = true] nie działa
źródło
this.selected
można użyć zamiast$(this).is(":selected")
, chyba nie ma do tego potrzeby używania jsperf, prawda? Nie mam nic przeciwko używaniu jQuery !, ale używaj go wtedy, gdy tego potrzebujesz, a nie wtedy, gdy daje tylko narzut i więcej kodu.this.selected
jest całkowicie poprawny, ale poprosił o właściwy sposób, aby to zrobić w jQuery.Możesz uzyskać wybraną opcję w ten sposób:
DEMO NA ŻYWO
Ale jeśli chcesz iterować wszystkie opcje, zrób to z,
this.selected
zamiastthis.isChecked
których nie istnieje:DEMO NA ŻYWO
Aktualizacja:
Masz wiele odpowiedzi sugerujących użycie tego:
$(this).is(':selected')
cóż, można to zrobić dużo szybciej i łatwiej,this.selected
więc dlaczego miałbyś używać tego, a nie natywnej metody elementów DOM ?!Czytaj Know Your DOM właściwości i funkcje w
jQuery
informacji znacznikaźródło
this.selected
. Zgadzam się z Twoimi komentarzami na temat nadużywania / nadużywania jQuery. Częścią znajomości jQuery jest wiedza, kiedy go nie używać. To powiedziawszy, pamiętaj, że':selected'
selektor jest niestandardowym selektorem Sizzle, więc użycie go wyłącza użyciequerySelectorAll
w obsługiwanych przeglądarkach. Z pewnością nie jest to koniec świata, ponieważ zawiera fajny, krótki kod, ale osobiście staram się unikać rzeczy tylko Sizzle.Jeśli nie znasz lub nie czujesz się komfortowo
is()
, możesz po prostu sprawdzić wartośćprop("selected")
.Jak widać tutaj :
Edycja :
Jak @gdoron wskazał w komentarzach, szybszym i najbardziej odpowiednim sposobem uzyskania dostępu do wybranej właściwości opcji jest użycie selektora DOM. Oto aktualizacja skrzypiec wyświetlająca tę akcję.
wydaje się działać równie dobrze! Dzięki, gdoron.
źródło
$(this).prop("selected")
zamiastthis.selected
?! co ci to daje ??! ps Nie jestem zwolennikiem krytyki ...is
najlepiej użyć, ale lubię uzyskiwać dostęp do moich właściwości za pomocą właściwości i atr. W większości scenariuszy może to być tylko kwestia gustu. Tak, jest ciekawa wysypka głosów przeciw!jQuery
informacjach o tagu . nie ma powodu, aby używać wolniejszego kodu + więcej kodu do robienia prostych rzeczy..is()
powinno być używane dla skomplikowanego selektora, takiego jak$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$ (...). is (": visiable").$(this).is(':selected')
zostać przyjęty Stackoverflow powinny być wykorzystywane, aby dowiedzieć się najlepsze praktyki, a nie typowych błędów ....)Możesz użyć tego sposobu przez jQuery:
źródło
posługiwać się
aby sprawdzić, czy jest to szczególna opcja
myoption
:źródło
myoption
???Potraktuj to jako swoją listę wyboru:
następnie zaznaczasz wybraną opcję w ten sposób:
źródło
W moim przypadku nie wiem, dlaczego wybrane jest zawsze prawdziwe. Więc jedyny sposób, w jaki mogłem wymyślić, to:
źródło
Jeśli chcesz tylko sprawdzić, czy opcja jest wybrana, nie musisz powtarzać wszystkich opcji. Po prostu zrób
Uwaga: Jeśli masz opcję o wartości = 0, którą chcesz wybrać, musisz zmienić warunek warunkowy na
$('#mySelectBox').val() != null
źródło
Jeśli chcesz sprawdzić stan wybranej opcji dla określonej wartości :
źródło
Jeśli chcesz sprawdzić wybraną opcję przez javascript
Najprostszą metodą jest dodanie atrybutu onchange w tym tagu i zdefiniowanie funkcji w pliku js zobacz przykład jeśli twój plik html ma opcje takie jak ta
A teraz dodaj funkcję w pliku js
Jeśli chcesz sprawdzić wybraną opcję w pliku php
Po prostu podaj atrybut nazwy w swoim tagu i uzyskaj do niego dostęp do pliku php zmiennych globalnych / tablicy ($ _GET lub $ _POST) zobacz przykład, jeśli twój plik html jest podobny do tego
W swoim pliku validation.php php możesz uzyskać dostęp w ten sposób
źródło