Mam problem ze zrozumieniem tego. Mam dwa checkboxy (w przyszłości będzie ich więcej):
checkSurfaceEnvironment-1
checkSurfaceEnvironment-2
Zasadniczo chcę napisać instrukcję if i sprawdzić, czy jedna z nich jest zaznaczona, a druga NIE. Jaki jest najłatwiejszy sposób wykonania następujących czynności:
if ( $("#checkSurfaceEnvironment-1").attr('checked', true) &&
$("#checkSurfaceEnvironment-2").is('**(NOT??)** :checked') ) {
// do something
}
jquery
if-statement
user1040259
źródło
źródło
||
nie&&
sprawdzać, czy któryś z nich jest zaznaczony.&&
sprawdza, czy oba są zaznaczone.Odpowiedzi:
Jeden niezawodny sposób, którego używam, to:
Jeśli chcesz iterować po zaznaczonych elementach, użyj elementu nadrzędnego
Więcej informacji:
Działa to dobrze, ponieważ wszystkie pola wyboru mają zaznaczoną właściwość, która przechowuje rzeczywisty stan pola wyboru. Jeśli chcesz, możesz sprawdzić stronę i spróbować zaznaczyć i odznaczyć pole wyboru, a zauważysz, że atrybut „zaznaczone” (jeśli jest obecny) pozostanie taki sam. Ten atrybut reprezentuje tylko początkowy stan pola wyboru, a nie stan bieżący . Bieżący stan jest przechowywany we właściwości zaznaczonej elementu dom dla tego pola wyboru.
Zobacz Właściwości i atrybuty w HTML
źródło
checked = true
źródło
Możesz także użyć
.not()
metody jQuery lub:not()
selektora:Przykład JSFiddle
Dodatkowe uwagi
Z dokumentacji jQuery API dla
:not()
selektora :źródło
Alternatywny sposób:
Oto działający przykład, a tutaj kod, powinieneś również użyć prop.
Skomentowałem sposób przełączania zaznaczonego atrybutu.
źródło
źródło
Szukałem bardziej bezpośredniej implementacji, jak sugerował avijendr.
Miałem mały problem z jego / jej składnią, ale udało mi się to:
W moim przypadku miałem tabelę z klasą
user-forms
i sprawdzałem, czy którekolwiek z pól wyboru, które zawierało ciąg znaków,checkPrint
nieid
było zaznaczone.źródło
Myślę, że najłatwiejszym sposobem (z jQuery) sprawdzenia, czy pole wyboru jest zaznaczone, czy NIE, jest:
jeśli „zaznaczone”:
jeśli NIE 'zaznaczone':
źródło
Tutaj mam fragment na to pytanie.
źródło
Zrobić to
.attr()
tak, jak zrobiłeś, sprawdzić, czy jest zaznaczone, to byłoby.attr("checked", "checked")
, a jeśli nie, to byłoby.attr("checked") == undefined
źródło
Zwraca true, jeśli wszystkie checboxy są zaznaczone w div
źródło
Prosty i łatwy do sprawdzenia lub niezaznaczony stan
źródło
Spróbuj tego
W powyższym kodzie wybierając element według Id,
(#checkSurfaceEnvironment-1)
a następnie odfiltruj jego stan zaznaczenia według(:checked)
filtr.Zwróci tablicę zaznaczonego obiektu elementu. Jeśli w tablicy istnieje jakiś obiekt, to warunek zostanie spełniony.
źródło
Stan można sprawdzić na dwa sposoby.
LUB możesz użyć tego również
Mam nadzieję, że to Ci się przyda.
źródło
Oto najprostszy podany sposób
źródło
Użyłem tego i zadziałało dla mnie!
źródło
Wiem, że na to już udzielono odpowiedzi, ale nadal jest to dobry sposób:
źródło
źródło
źródło