jQuery
Kryssruta Markera alla med automatisk kryssrutan / avmarkera vid annan kryssruta
Sök…
Introduktion
Jag har använt olika Stackoverflow-exempel och svar för att komma till detta riktigt enkla exempel på hur man ska hantera "markera alla" kryssrutan i kombination med en automatisk check / avmarkera om någon av gruppkryssrutans status ändras. Begränsning: ID: n "välj alla" måste matcha inmatningsnamnen för att skapa välj alla grupper. I exemplet är ingången att välja alla ID cbGroup1. Ingångsnamnen är också cbGroup1
Koden är mycket kort, inte mycket om uttalande (tid och resurskrävande).
2 markera alla kryssrutor med motsvarande gruppkryssrutor
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<p>
<input id="cbGroup1" type="checkbox">Select all
<input name="cbGroup1" type="checkbox" value="value1_1">Group1 value 1
<input name="cbGroup1" type="checkbox" value="value1_2">Group1 value 2
<input name="cbGroup1" type="checkbox" value="value1_3">Group1 value 3
</p>
<p>
<input id="cbGroup2" type="checkbox">Select all
<input name="cbGroup2" type="checkbox" value="value2_1">Group2 value 1
<input name="cbGroup2" type="checkbox" value="value2_2">Group2 value 2
<input name="cbGroup2" type="checkbox" value="value2_3">Group2 value 3
</p>
<script type="text/javascript" language="javascript">
$("input").change(function() {
$('input[name=\''+this.id+'\']').not(this).prop('checked', this.checked);
$('#'+this.name).prop('checked', $('input[name=\''+this.name+'\']').length === $('input[name=\''+this.name+'\']').filter(':checked').length);
});
</script>
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow