2017-10-20 18 views
0

Je souhaite désactiver d'autres checkbox si la valeur cochée checkbox a une valeur différente des autres. J'ai vu une question mais la réponse est le contraire. toutes les réponses sont bien appréciées.jQuery - Cochez la case et désactivez l'autre si la valeur est différente

<input type='checkbox' name='check[]' value='Active'> //first checkbox 
<input type='checkbox' name='check[]' value='Inactive'> 
<input type='checkbox' name='check[]' value='Inactive'> 
<input type='checkbox' name='check[]' value='Active'> 

Disons que first checkbox est vérifiée avec la valeur de Active. les autres cases avec une valeur de Inactive doivent être désactivées on change.

Voici l'exemple que j'ai trouvé d'un des devs ici

Fiddle: https://jsfiddle.net/Lenauevf/1/

When Checkbox checked make other same value checkboxes disabled

+2

ajouter tout le code lié à OP non un lien externe – guradio

+0

Vous voulez handicapés avec des cases à cocher 'Inactive' valeur uniquement lorsque vous cliquez sur la première case? –

Répondre

1
$("input[name='check[]']").on('click', function() { 
     var val = $(this).val(); 
     var parent = $(this); 
     $("input[value !='"+val+"']").each(function() { 
      $(this).not(parent).attr('disabled', parent.is(':checked')); 
     }); 
    }) 
+0

beau travail, comment puis-je aussi le faire si j'utilise 'attribut de données»? au lieu de "valeur" merci! – Dre

+0

Vous pouvez utiliser $ .data (attr) pour obtenir la valeur de l'attribut de chaque tag d'entrée, le faire de la même manière que vous faites la largeur de l'attribut 'name' –

1
  1. Obtenir la valeur actuelle de la case du changement sur l'événement de changement.
  2. Décochez toute la case.
  3. Utilisez la valeur actuelle pour vérifier toutes les case avec la même valeur

$(":checkbox").change(function() { 
 
    let val = $(this).val(); 
 
    console.log(val) 
 
    $(":checkbox").prop("checked", false) 
 
    $(":checkbox[value=" + val + "]").prop("checked", true) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='checkbox' name='check[]' value='Active'> 
 
<input type='checkbox' name='check[]' value='Inactive'> 
 
<input type='checkbox' name='check[]' value='Inactive'> 
 
<input type='checkbox' name='check[]' value='Active'>

+0

beau travail, comment puis-je aussi faire si j'utilise ' attribut de données »? au lieu de "valeur" merci! – Dre

+0

changez simplement la valeur avec l'attribut '$ (": case à cocher [data-value = "+ val +"] ")' pour ' '@dre – guradio