2017-09-29 10 views
0

J'ai vraiment besoin de votre aide et je n'arrive pas à trouver une solution similaire qui fournirait le soutien dont j'avais besoin pour ce que j'essaie d'accomplir ici.Comment cocher les cases en fonction des valeurs du tableau

Comment puis-je cocher par programme les cases à cocher suivantes en fonction de leurs valeurs dans un tableau.

var arr = ['recurr_date2','recurr_date4'] 

Je voudrais cocher la case dont la valeur est recurr_date2 et recurr_date4

Voici le balisage HTML:

<input name="recurr_target" value="recurr_date2" type="checkbox"> 
<input name="recurr_target" value="recurr_date3" type="checkbox"> 
<input name="recurr_target" value="recurr_date4" type="checkbox"> 

Je suis très bien avec un anwer aussi en utilisant jQuery

+0

liés: https://stackoverflow.com/questions/17537579/check-checkboxes-based-on-values-in-an-array –

Répondre

-2

Utilisez filter pour vérifier la valeur de votre entrée si elle est dans le tableau ou non.

var arr = ['recurr_date2', 'recurr_date4']; 
 

 
$("input[name='recurr_target']").filter(function() { 
 
    return arr.indexOf(this.value) != -1; 
 
}).prop("checked", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<input name="recurr_target" value="recurr_date2" type="checkbox" /> 
 
<input name="recurr_target" value="recurr_date3" type="checkbox" /> 
 
<input name="recurr_target" value="recurr_date4" type="checkbox" />

+0

'return $ (this);' c'est bizarre. Pourquoi passer par la peine de créer un nouvel objet jquery juste pour convertir cet objet en valeur booléenne? Le filtre –

+0

s'attend à ce qu'une valeur booléenne soit renvoyée. Si vous renvoyez quelque chose d'autre, il sera converti en un booléen. Vous pourriez très bien avoir juste renvoyé le conditionnel sans la déclaration if. c'est redondant. 'if (true) renvoie true;' -> 'return true' –

-1

Essayez ceci.

var arr = ['recurr_date2','recurr_date4'] 
arr.forEach(function(ar){ 
    if(!$('input[value='+ar+']').prop('checked'))//see if its unchecked 
    $('input[value='+ar+']').click() 
}) 
-1
var arr = ['recurr_date2','recurr_date4'] 
for(let name of arr) { 
    document.querySelector(`[value="${name}"]`).setAttribute('checked', '') 
} 

Voici ce qui fait:

  1. itérer sur la liste des cases à cocher
  2. Désigne l'élément DOM pour elle
  3. Ajouter l'checked attribut