145 votes

Comment décocher la case à cocher en utilisant la bibliothèque jQuery Uniform

J'ai un problème avec décochant une case à cocher. Jetez un oeil à mon jsFiddle , où j'essaye:

    $("#check2").attr("checked", true);
 

J'utilise un uniforme pour styliser la case à cocher et cela ne fonctionne tout simplement pas pour cocher / décocher la case.

Des idées?

368voto

Mr.Hunt Points 3753

Une solution plus simple consiste à faire ceci plutôt que d'utiliser un uniforme:

 $('#check1').prop('checked', true); // will check the checkbox with id check1
$('#check1').prop('checked', false); // will uncheck the checkbox with id check1
 

Cela ne déclenchera aucune action de clic définie.

Vous pouvez aussi utiliser:

 $('#check1').click(); // 
 

Cela activera la case à cocher / décocher pour la case à cocher mais cela déclenchera également toute action de clic que vous avez définie. Donc sois prudent.

EDIT : jQuery 1.6+ utilise prop() not attr() pour les cases à cocher valeur vérifiée

109voto

user113716 Points 143363

En regardant leurs documents, ils ont une fonction $.uniform.update pour actualiser un élément "en uniforme".

Exemple: http://jsfiddle.net/r87NH/4/

 $("input:checkbox").uniform();

$("body").on("click", "#check1", function () {
    var two = $("#check2").attr("checked", this.checked);
    $.uniform.update(two);
});
 

24voto

user1683014 Points 421
 $("#chkBox").attr('checked', false); 
 

Cela a fonctionné pour moi, cela décochera la case à cocher. De la même manière, nous pouvons utiliser

 $("#chkBox").attr('checked', true); 
 

pour cocher la case.

13voto

Dark Wish Points 1172

Si vous utilisez uniforme de 1,5 ensuite utiliser ce truc simple pour ajouter ou supprimer l'attribut de vérification
Juste ajouter de la valeur="vérifier" dans votre case du champ de saisie.
Ajouter ce code dans uniform.js > function doCheckbox(elem){ > .click(function(){

if ( $(elem+':checked').val() == 'check' ) {
    $(elem).attr('checked','checked');           
}
else {
    $(elem).removeAttr('checked');
}   

si vous ne voulez pas ajouter de la valeur="vérifier" dans votre boîte d'entrée parce que, dans certains cas, vous ajoutez les deux cases à cocher afin d'utiliser cette

if ($(elem).is(':checked')) {
 $(elem).attr('checked','checked');
}    
else
{    
 $(elem).removeAttr('checked');
}

Si vous utilisez uniforme 2.0 puis utiliser ce truc simple pour ajouter ou supprimer l'attribut de vérification
dans cette classUpdateChecked($tag, $el, options) { modification de la fonction

if ($el.prop) {
    // jQuery 1.6+
    $el.prop(c, isChecked);
}

Pour

if ($el.prop) {
    // jQuery 1.6+
    $el.prop(c, isChecked);
    if (isChecked) {
        $el.attr(c, c);
    } else {
        $el.removeAttr(c);
    }

}

7voto

Adde Points 41
 $('#check1').prop('checked', true).uniform(); 
$('#check1').prop('checked', false).uniform(); 
 

Cela a fonctionné pour moi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X