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é”.
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; }); });