jquery
2009-10-13 8 views 2 likes 
2

code suivantes fonctionnent bien, mais 1 erreurdésactiver toutes les cases à cocher

$(document).ready(
function() { 


$("#myCheckboxes input[type='checkbox']").change(function() { 
    var checked = $("#myCheckboxes input[type='checkbox']:checked").length; 

     if(checked == 4){ 
      $("#myCheckboxes input[type='checkbox']") 
      .attr('disabled',true) 
      .find(':checked') 
      .attr('disabled',false) 
    } else { 
     $("#myCheckboxes input[type='checkbox']").attr('disabled',false); 
    } 


    }); 
}); 

après sélection devenu 4 tous case à cocher deviennent même désactiver une sélection, mais je ne veux pas désactiver case à cocher sélectionnée de.

Merci

+0

utilisation> = 4 plutôt que == 4 – powtac

Répondre

11

Essayez cette

$("#myCheckboxes :checkbox:not(:checked)").attr('disabled', true) 

au lieu de

$("#myCheckboxes input[type='checkbox']") 
    .attr('disabled',true) 
    .find(':checked') 
    .attr('disabled',false) 
+0

Ouais, Je crois que c'est exactement ce que voulait le questionneur original. –

+1

Juste pour ajouter (j'ai voté) pourrait également utiliser le: checkbox sélecteur, comme dans '#myCheckboxes: case à cocher: not (: checked)' ... – karim79

+0

oui cela exactement ce que je cherchais, gr8 solution et merci de varier beaucoup pour cela ... – air

0

je l'ai déjà ajusté ma réponse à votre question initiale (que vous curieusement posté comme une autre question sur le SO). J'ai eu une petite faute de frappe qui a été corrigé depuis votre commentaire: set total number of checkbox in array

+0

cher monsieur, vous le faites encore à tort, en fait je veux désactiver un décoché, mon but est que l'utilisateur ne peut pas sélectionner plus de 4 options ... de toute façon merci pour votre aide – air

3

Vous devriez noter que ce n'est pas le moyen d'activer/désactiver les éléments DOM.
Tenir compte:

<input type="checkbox" disabled='true' /> 
<input type="checkbox" disabled='false' /> 

Contrairement à ce qui semble, parce qu'ils ont l'attribut disabled, les deux commandes sont désactivées!
Ceci est pour compatibilité arrière, lorsque HTML avait <input type="checkbox" disabled /> - la valeur est ignorée.

La commune pourquoi désactiver un élément est par

<input type="checkbox" disabled='disabled' /> 

Therfore, la bonne façon de le faire avec jQuery est:

$("input:checkbox").attr('disabled', 'disabled'); //disable 
$("input:checkbox").removeAttr('disabled'); //enable 
Questions connexes