Mam następujące:
$(document).ready(function()
{
$("#select-all-teammembers").click(function() {
$("input[name=recipients\\[\\]]").attr('checked', true);
});
});
Chciałbym, aby id="select-all-teammembers"
po kliknięciu przełączać między zaznaczonym a niezaznaczonym. Pomysły? to nie są dziesiątki linii kodu?
$('input[type=checkbox]').trigger('click');
wspomniane przez @ 2astalavista poniżej jest bardziej zwięzłe i powoduje również zdarzenie „zmiany”.źródło
Wiem, że to stare, ale pytanie było nieco dwuznaczne, ponieważ przełączanie może oznaczać, że każde pole wyboru powinno przełączać swój stan, cokolwiek to jest. Jeśli masz 3 zaznaczone, a 2 niezaznaczone, przełączenie spowoduje, że pierwsze 3 pozostaną niezaznaczone, a ostatnie 2 zaznaczone.
W tym celu żadne z rozwiązań tutaj nie działa, ponieważ powodują, że wszystkie pola wyboru mają ten sam stan, zamiast przełączać stan każdego pola wyboru. Wykonanie
$(':checkbox').prop('checked')
wielu pól wyboru zwraca logiczne AND między wszystkimi.checked
właściwościami binarnymi, tzn. Jeśli jedna z nich nie jest zaznaczona, zwracana jest wartośćfalse
.Musisz użyć,
.each()
jeśli chcesz przełączyć każdy stan pola wyboru zamiast zrównać je wszystkie, npPamiętaj, że nie musisz korzystać z
$(this)
modułu obsługi, ponieważ.checked
właściwość istnieje we wszystkich przeglądarkach.źródło
Oto inny sposób, który chcesz.
źródło
Myślę, że łatwiej jest po prostu uruchomić kliknięcie:
źródło
Najlepszy sposób, jaki mogę wymyślić.
lub
lub
źródło
Od jQuery 1.6 możesz użyć
.prop(function)
do przełączania sprawdzonego stanu każdego znalezionego elementu:źródło
Użyj tej wtyczki:
Następnie
źródło
Zakładając, że jest to obraz, który musi przełączać pole wyboru, działa to dla mnie
źródło
Sprawdź wszystko pole powinno zostać zaktualizowane się pod pewnymi warunkami. Spróbuj kliknąć „# select-all-teammembers”, a następnie odznacz kilka elementów i kliknij ponownie select-all. Możesz zobaczyć niespójność. Aby temu zapobiec, użyj następującej sztuczki:
BTW wszystkie pola wyboru Obiekt DOM powinien być buforowany zgodnie z powyższym opisem.
źródło
Oto jQuery sposób przełączania pól wyboru bez konieczności zaznaczania pola wyboru za pomocą html5 i etykiet:
http://www.bootply.com/A4h6kAPshx
źródło
jeśli chcesz przełączać poszczególne pola osobno (lub tylko jedno pole działa równie dobrze):
Polecam użycie .each (), ponieważ jest łatwa do modyfikacji, jeśli chcesz, aby wydarzyły się różne rzeczy, a jednocześnie stosunkowo krótka i łatwa do odczytania.
np .:
na marginesie ... nie jestem pewien, dlaczego wszyscy używają .attr () lub .prop () do (od) sprawdzania rzeczy.
o ile wiem, element.checked zawsze działał tak samo we wszystkich przeglądarkach?
źródło
;)
źródło
Możesz także tak pisać
Wystarczy wywołać zdarzenie kliknięcia pola wyboru, gdy użytkownik kliknie przycisk o identyfikatorze „# checkbox-toggle”.
źródło
Lepsze podejście i UX
źródło
Próbować:
źródło
Ten działa dla mnie bardzo dobrze.
źródło
!
przed tym znak ...Najbardziej podstawowym przykładem byłoby:
źródło
po prostu możesz tego użyć
źródło
Myślę, że najodpowiedniejszym człowiekiem, który zaproponował normalny wariant, jest GigolNet Gigolashvili, ale chcę zaproponować jeszcze piękniejszy wariant. Sprawdź to
źródło
Ustawienie „zaznaczone” lub null zamiast odpowiednio prawda lub fałsz wykona pracę.
źródło
Ten kod przełącza pole wyboru po kliknięciu dowolnego animatora przełączania przełącznika używanego w szablonach internetowych. Zamień „.onoffswitch-label” na dostępne w kodzie. „checkboxID” to pole wyboru przełączane tutaj.
źródło
Jest łatwiejszy sposób
Najpierw daj swoim polom wyboru przykład klasy „id_chk”
Następnie wewnątrz pola wyboru, które będzie kontrolować stan pól wyboru id_chk:
<input type='checkbox' onchange='js:jQuery(".id_chk").prop("checked", jQuery(this).prop("checked"))' />
To wszystko, mam nadzieję, że to pomoże
źródło