Limiter les cases à cocher cochées par défaut

J’ai un problème concernant la façon dont je limiterai ma case à cocher par défaut. Par exemple, j’ai 7 cases à cocher. et je veux le limiter avec 3 cases à cocher par défaut une fois la page chargée.

this should be the output: Checkbox1 : true Checkbox2 : true Checkbox3 : true Checkbox4 : false Checkbox5 : false Checkbox6 : false Checkbox7 : false 

Voici mon exemple de code:

 var mvp = 3; $(document).ready(function() { $("input:checkbox").each(function( index ) { ($this).attr("checked",true); }); }); 

Je suis en stock avec cela, je ne sais pas où je vais mettre mon compteur (MVP) dans mon chaque fonction dans ce code, toutes mes cases à cocher sont cochées: D.

Désolé pour une question de débutant, aidez-moi s’il vous plaît ..

En réalité, il n’est pas nécessaire de disposer d’un compteur puisque each fonction passe dans l’index. Il suffit d’utiliser l’index comme compteur.

 $(document).ready(function() { $("input:checkbox").each(function( index ) { this.checked = (index < 3); }); }); 

JS Fiddle: http://jsfiddle.net/SB6aD/2/

En utilisant jquery :lt selector, il correspondra à tous les éléments ayant un index plus petit.

Exemple:

 $(function() { var mvp = 3; $('input:checkbox:lt('+mvp+')').prop('checked', true); }); 

Basé sur le code de @Kevin Bowersox:

 var mvp = 3; $(document).ready(function() { var counter = 0; $("input:checkbox").each(function( index ) { if(counter < mvp){ $(this).attr("checked",true); counter++; } }); }); 

J'ai modifié ce code dans ceci:

 var mvp = 3; $(document).ready(function() { $("input:checkbox").each(function( index ) { if(index < mvp){ $(this).attr("checked",true); } }); }); 

Ne configurez pas l’état par défaut de votre page avec Javascript, utilisez l’atsortingbut HTML “vérifié”.

 
I have a bike
I have a car

Dans cet exemple, la case à cocher voiture sera cochée.

mvp après avoir coché chaque case. Quand il atteint 0, commencez à décocher.

 $(document).ready(function() { var mvp = 3; $("input:checkbox").each(function( index ) { ($this).attr("checked", mvp > 0); mvp--; }); }); 

Vérifiez la tranche

 $(function() { var mvp = 3; $('input:checkbox').slice(0, mvp).prop('checked', true); $('input:checkbox').slice(mvp).prop('checked', false); }); 

Voir le JS Fiddle

Et notez que checked est plutôt une propriété qu’un atsortingbut, utilisez .prop au lieu de .attr .

démo

 $(document).ready(function() { var checkboxes = $("input:checkbox"); checkboxes.each(function( index ) { if (checkboxes.filter(':checked').length >= 3) {return;} this.checked = true; }); });