Question Cochez / décochez la case en utilisant jquery? [dupliquer]


Cette question a déjà une réponse ici:

J'ai quelques champs de texte de saisie dans ma page, j'affiche leurs valeurs using la fonction de javascript setVal pour éditer, j'ai ajouté un champ de case à cocher supplémentaire, j'ai passé une valeur,

Ici, je veux vérifier si value == 1, alors cette case doit être cochée sinon cochée,

Je l'ai fait en utilisant deux divs, mais je ne me sens pas à l'aise avec cela, y at-il une autre solution?

if(value == 1) {
    $('#uncheck').hide();
    $('#check').show();
} else{
    $('#uncheck').show();
    $('#check').hide();
}

482
2017-07-02 08:09


origine


Réponses:


Pour jQuery 1.6+: 

.attr () est déconseillé pour les propriétés; utilise le nouveau .soutenir() fonctionner à la place comme:

$('#myCheckbox').prop('checked', true); // Checks it
$('#myCheckbox').prop('checked', false); // Unchecks it

Pour jQuery <1.6:

Pour cocher / décocher une case, utilisez l'attribut checked et modifiez cela. Avec jQuery vous pouvez faire:

$('#myCheckbox').attr('checked', true); // Checks it
$('#myCheckbox').attr('checked', false); // Unchecks it

Parce que vous savez, en HTML, ça ressemblerait à ça:

<input type="checkbox" id="myCheckbox" checked="checked" /> <!-- Checked -->
<input type="checkbox" id="myCheckbox" /> <!-- Unchecked -->

Cependant, vous ne pouvez pas faire confiance à la méthode .attr () pour obtenir la valeur de la case à cocher (si vous en avez besoin). Vous devrez compter sur le .soutenir() méthode.


1021
2017-07-02 08:12



Vous pouvez utiliser soutenir() pour cela, comme Avant jQuery 1.6, la .attr () méthode prend parfois en compte les valeurs de propriété lors de la récupération de certains attributs, ce qui peut entraîner un comportement incohérent. À partir de jQuery 1.6, la .prop() méthode fournit un moyen de récupérer explicitement les valeurs de propriété, tout en .attr() récupère les attributs.

var prop=false;
if(value == 1) {
   prop=true; 
}
$('#checkbox').prop('checked',prop);

ou simplement,

$('#checkbox').prop('checked',(value == 1));

Fragment

$(document).ready(function() {
  var chkbox = $('.customcheckbox');
  $(".customvalue").keyup(function() {
    chkbox.prop('checked', this.value==1);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h4>This is a domo to show check box is checked
if you enter value 1 else check box will be unchecked </h4>
Enter a value:
<input type="text" value="" class="customvalue">
<br>checkbox output :
<input type="checkbox" class="customcheckbox">


57
2017-07-02 08:13



Vous pouvez définir l'état de la case à cocher en fonction de la valeur:

$('#your-checkbox').prop('checked', value == 1);

26
2017-07-02 08:13