web-dev-qa-db-fra.com

Bootstrap n'utilise pas l'attribut "vérifié" de la case à cocher

J'utilise Bootstrap. J'ai une table avec une case à cocher dans un en-tête et dans chaque colonne. J'essaie de faire "vérifier tout" fonctionnalité sur jQuery, mais il semble que bootstrap n'utilise pas l'attribut vérifié. Comme je le vois, il ajoute une balise span autour de ma case à cocher et ajoute une classe "cochée". Existe-t-il une possibilité de travailler avec un attr vérifié, ou dois-je l’oublier et écrire un contrôle de classe et une permutation?

Ci-dessous se trouve la partie de code du résultat HTML:

<td>
  <div class="checker">
    <span class="">
      <input type="checkbox" class="payout_check" style="opacity: 0;">
    </span>
  </div>
</td>

Ceci est une case non contrôlée. Le il est vérifié, la troisième ligne devient:

<span class="checked">
6
Bandydan

ce travail pour décocher

jQuery('span', $('#uniform-You_id_checkbox')).removeClass("checked");

$('#You_id_checkbox').removeAttr("checked");
5
agraterol

Vous pouvez utiliser prop . J'ai fait face au même problème. En cochant une case à cocher, l'attribut vérifié était indéfini. Quand je l'ai changé pour prop, il a donné une valeur true et false basée sur l'état de la case à cocher.

$('#checkboxId').prop('checked');
10
Fight code with code

Si je comprends votre problème, je pense que la réponse à une question plus ancienne devrait aider.

$('#toggle-all').click(function() {
    $('.btn-group input[type="checkbox"]').prop('checked', true);
});

http://jsfiddle.net/mmfansler/g3mu8/

4
craighandley

Cela a fonctionné pour moi:

$('#form-new-event input[type=checkbox]').parents('span').removeClass("checked");

$('#form-new-event input[type=checkbox]').removeAttr("checked");
3
Jhonatascf

Utilisation de jQuery

$("input[name='theCheckboxName']").is(":checked"); // Returns true or false

OR

$("input[name='theCheckboxName']").prop("checked"); // Returns true or false

Cela inspecte la propriété "vérifié" de l'élément DOM plutôt que l'existence de l'attribut "vérifié" sur la balise. En utilisant cette méthode, vous évitez d'avoir à définir et à désactiver l'attribut "vérifié".


Dans le balisage

<div class="checkbox">
    <label>
        <input name="theCheckboxName" type="checkbox" checked="checked"> <span>Yes</span>
    </label>
</div>

Cela rend la case à cocher cochée par défaut. La propriété "vérifié" doit toujours être utilisée pour déterminer l'état par programmation.


Consultez ce lien pour plus d'informations:

http://www.tutorialrepublic.com/faq/how-to-check-a-checkbox-is-checked-or-not-using-jquery.php

1
Jason Stonebraker
 
 $ (document) .ready (fonction () {
 $ ("[type = case à cocher]"). sur ("clic", fonction () {
 if ($ (this) .attr ("coché") == non défini) {
 $ (this) .attr ("coché", "coché"); 
} autre {
 $ (this) .attr ("vérifié", faux); 
} 
); 
}); 
 
1
$('#your-checkbox-id').parents('span').removeClass("checked").end().removeAttr("checked").change();

ou

$('#your-checkbox-id').prop('checked') && $('#your-checkbox-id').click();

PS: le dernier émulera un clic (seulement si la case est cochée). Si vous ne voulez pas déclencher un événement, utilisez le premier et supprimez l'appel "change ()".

0
Daniel Loureiro