Próbuję zaznaczyć / odznaczyć wszystkie pola wyboru przy użyciu jQuery. Teraz, poprzez zaznaczenie / odznaczenie pola wyboru nadrzędnego, wszystkie podrzędne pola wyboru są zaznaczane / odznaczane, a tekst pola wyboru nadrzędnego zmienia się na zaznaczenie / odznaczenie.
Teraz chcę zastąpić pole wyboru rodzica przyciskiem wprowadzania i zmienić tekst również na przycisku, aby zaznaczyć wszystkie / odznaczyć. Oto kod, czy ktoś może go poprawić?
$( function() {
$( '.checkAll' ).live( 'change', function() {
$( '.cb-element' ).attr( 'checked', $( this ).is( ':checked' ) ? 'checked' : '' );
$( this ).next().text( $( this ).is( ':checked' ) ? 'Uncheck All' : 'Check All' );
});
$( '.cb-element' ).live( 'change', function() {
$( '.cb-element' ).length == $( '.cb-element:checked' ).length ? $( '.checkAll' ).attr( 'checked', 'checked' ).next().text( 'Uncheck All' ) : $( '.checkAll' ).attr( 'checked', '' ).next().text( 'Check All' );
});
});
<input type="checkbox" class="checkAll" /> <b>Check All</b>
<input type="checkbox" class="cb-element" /> Checkbox 1
<input type="checkbox" class="cb-element" /> Checkbox 2
<input type="checkbox" class="cb-element" /> Checkbox 3
Odpowiedzi:
Spróbuj tego :
PRÓBNY
źródło
.click()
.attr()
iremoveAttr()
nie powinien być używany z atrybutem „zaznaczone”. AsremoveAttr()
usunie atrybut zamiast ustawiania go nafalse
..prop('checked', true)
lub.prop('checked', false)
powinno być używane zamiast tego, jak wyjaśniono w odpowiedzi @ richard-garside.To najkrótsza droga, jaką znalazłem (wymaga jQuery1.6 +)
HTML:
JS:
Używam .prop, ponieważ .attr nie działa dla pól wyboru w jQuery 1.6+, chyba że jawnie dodałeś zaznaczony atrybut do tagu wejściowego.
Przykład-
źródło
Spróbuj tego:
HTML
JavaScript
PRÓBNY
źródło
HTML
Javascript
źródło
Rozwiązanie do przełączania pól wyboru za pomocą przycisku, zgodne z jQuery 1.9+, gdzie toogle -event nie jest już dostępne :
PRÓBNY
źródło
Spróbuj tego:
e
jest zdarzeniem generowanym, gdy to zrobiszclick
, ie.target
jest elementem clicked (.checkAll
), więc musisz tylko umieścić właściwośćchecked
elementów z klasą,.cb-element
taką jak element z klasą .checkAll`.PS: Przepraszam za mój zły angielski!
źródło
$('#all_news_items').on('click', function(e) { $('.news-item-option').prop('checked', $(e.target).prop('checked')); });
bez checkall funkcje kolidujące z innymi elementami formularza, dzięki czemu można łatwo dodać nowy checkall:$('#all_specializations').on('click', function(e) { $('.specialization-option').prop('checked', $(e.target).prop('checked')); });
Możesz tego spróbować
Klasa
.checkAll
to pole wyboru kontrolujące akcję zbiorcząźródło
Zgadzam się z krótką odpowiedzią Richarda Garside, ale zamiast używać
prop()
w$(this).prop("checked")
, możesz użyć natywnejchecked
właściwości pola wyboru w JS , takiej jak,źródło
Zaznacz / odznacz wszystko za pomocą właściwości pośredniej przy użyciu jQuery
Pobierz zaznaczone elementy w tablicy przy użyciu metody getSelectedItems ()
Lista pól wyboru źródła Zaznacz / odznacz wszystko z nieokreśloną kontrolą główną
HTML
jQuery
źródło
Najlepsze rozwiązanie tutaj Sprawdź Fiddle
źródło
Poniższy kod zadziała, jeśli użytkownik zaznaczy wszystkie pola wyboru, a następnie pole wyboru wszystko zostanie zaznaczone, a jeśli użytkownik odznaczy jedno pole wyboru, pole wyboru wszystkie zostanie odznaczone.
źródło
Spróbuj tego
źródło
Bezwstydna autopromocja: jest do tego wtyczka jQuery .
HTML:
JS:
...i jesteś skończony.
http://jsfiddle.net/mattball/NrM2P
źródło
Spróbuj tego,
źródło
Możesz użyć,
this.checked
aby zweryfikować aktualny stan pola wyboru,Pokaż fragment kodu
źródło
Wypróbuj poniższy kod, aby zaznaczyć / odznaczyć wszystkie pola wyboru
Wypróbuj ten link demonstracyjny
Jest też inny krótki sposób, aby to zrobić, sprawdź poniższy przykład. W tym przykładzie zaznacz / odznacz wszystkie pole wyboru jest zaznaczone lub nie, jeśli jest zaznaczone, wtedy wszystkie zostaną zaznaczone, a jeśli nie, wszystkie zostaną odznaczone
źródło
Wiem, że to pytanie jest stare, ale zauważyłem, że większość ludzi używa pola wyboru. Zaakceptowana odpowiedź używa przycisku, ale nie może działać z kilkoma przyciskami (np. Jeden u góry strony, drugi u dołu). Oto modyfikacja, która robi jedno i drugie.
HTML
jQuery
Pozwoli to mieć tyle przycisków, ile chcesz, zmieniając tekst i wartości pól wyboru. Zawarłem
e.preventDefault()
wezwanie, ponieważ dzięki temu strona nie przeskakuje na góręhref="#"
.źródło
źródło
Oto link, który służy do zaznaczania i usuwania zaznaczenia nadrzędnego pola wyboru, a wszystkie podrzędne pola wyboru są zaznaczane i odznaczane.
jquery zaznacz odznacz wszystkie pola wyboru Używanie Jquery w wersji demonstracyjnej
źródło
źródło
dodaj to do swojego bloku kodu, a nawet kliknij przycisk
źródło
źródło
Zaznacz wszystko, odznaczając / sprawdzając kontroler, jeśli wszystkie elementy są / nie są zaznaczone
JS:
HTML:
źródło