2010-01-15 3 views
4

Salut tout le monde, j'essaie de cacher/montrer différents éléments html (div, etc ...) selon si une case est cochée ou si une valeur spécifique est choisi dans une liste déroulante. Je me demandais si quelqu'un pouvait m'aider. L'élément html est défini dans le sens de ceci (ci-dessous), et je ne suis pas sûr de savoir comment le référencer par son nom avec des crochets. La page que j'utilise a jquery activé, et je voudrais l'utiliser si possible. Merci!Référence HTML Eléments par nom (avec des crochets dans ceux-ci) via javascript

<input type="checkbox" name="addons[2]" /> 

Aussi - Je ne peux pas modifier le code de la case à cocher.

Répondre

2

Merci pour l'aide, voici le code final je

$("input[name='customfield[4]']").click(

    function() 
    { 
     if ($("input[name='customfield[4]']").is(":checked")) 
     { 
      $("#addons").hide(); 
     } 
     else 
     { 
      $("#addons").show(); 
     } 
    } 
); 
+0

Vous pouvez utiliser $ (this) .is (": checked") dans votre code JS. Aussi, il y a un moyen de le faire purement en CSS en utilisant le pseudo-élément vérifié: #addons {display: none} entrée [name = customefield \ [4 \]]: cochée + #addons {display: block}. Cela suppose que le div #addons est à côté de cet élément d'entrée. Sinon, vous pouvez utiliser ~ à la place de +. – Chandranshu

+0

J'ai ajouté un fichier jsfiddle à l'adresse http://jsfiddle.net/4LzP9/ pour référence. – Chandranshu

5

jQuery pour vérifier si l'élément est vérifié:

$("input[name='addons[2]']").attr("checked") 

jQuery en boucle sur ces éléments qui sont contrôlés:

$("input[name^='addons']:checked").each(function() { 
    // ... 
}); 
1

Voici un en ligne solution non-jQuery qui évite la nécessité pour référencer entièrement les crochets en utilisant le mot-clé javascript this. En supposant que vous voulez afficher/cacher un <div> avec id="mydiv":

<input type="checkbox" name="addons[2]" onclick="document.getElementById('mydiv').style.display = (this.checked ? 'block' : 'none');" /> 
+0

Merci , c'est un bon exemple - mais malheureusement je ne peux pas modifier le code de la case à cocher, il est généré automatiquement. Je vous ai donné un +1 cependant. –

0

éviter d'utiliser [] pour nommer les éléments HTML

Questions connexes