web-dev-qa-db-fra.com

Jquery, Comment obtenir un événement non coché et une valeur de case à cocher?

Je veux obtenir la valeur checkbox en utilisant jQuery quand décocher la case cochée et afficher cette valeur non cochée dans la fenêtre contextuelle. J'ai essayé le code ci-dessous mais ça ne marche pas

$("#countries input:checkbox:not(:checked)").click(function(){
    var val = $(this).val();
    alert('uncheckd' + val);
}); 

Est-il possible d'obtenir une valeur non contrôlée de cette manière?

20
Miuranga

Votre sélecteur attachera uniquement l'événement à l'élément sélectionné au début. Vous devez déterminer l'état de vérification non cochée lorsque la valeur est modifiée:

$("#countries input:checkbox").change(function() {
    var ischecked= $(this).is(':checked');
    if(!ischecked)
    alert('uncheckd ' + $(this).val());
}); 

Démo de travail

42
Milind Anantwar

Vous devez vérifier la condition en cliquant ou en modifiant. J'espère que mon exemple vous aidera.

    $("input:checkbox.country").click(function() {
        if(!$(this).is(":checked"))
        alert('you are unchecked ' + $(this).val());
    }); 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

    <input class="country" type="checkbox" name="country1" value="India" /> India </br>
    <input class="country" type="checkbox" name="country1" value="Russia" /> Russia <br>
    <input class="country" type="checkbox" name="country1" value="USA" /> USA <br>
    <input class="country" type="checkbox" name="country1" value="UK" /> UK
11
Senthil
 $("#countries input:checkbox").on('change',function()
 {
   if(!$(this).is(':checked'))
      alert('uncheckd ' + $(this).val());
 }); 
8
Prateek