2010-10-22 5 views
1

J'ai des cases à cocher sur une page, lorsque vous cliquez sur un intervalle pour chaque case à cocher, il va changer la couleur d'arrière-plan de la div contenant pour chaque case à cocher. Le problème est lorsque quelqu'un soumet le formulaire et va à la page suivante, puis clique sur le bouton de retour les cases à cocher restent cochées mais la couleur div revient. Existe-t-il un moyen d'obtenir les identifiants de boîtes cochées lorsque la page est chargée?Détecter si une case est cochée, puis obtenir l'ID div

Je possède ce pour détecter les cases cochées dans par onload du corps, mais ne savez pas comment obtenir div id pour chacun d'eux:

function detectchecked(){ 
    var count = 0; 
    var inputs = myform.getElementsByTagName('input'); 
    for (var i = 0, j = inputs.length; i<j; i++) { 
     var input = inputs[i]; 
     if (input.type && input.type === 'checkbox' && input.checked) { 
      alert(input); 
     } 
    } 
    } 

Mon code actuel pour les entrées ressemble à ceci:

<div id="myform"> 
<div id="div4452101" style="float:left; width:194px; height:90px; border:1px solid #000; margin:2px;"> 
    <div class="resultphoto"> 
    <span onClick="checkem('4452101');"> 
    image goes here 
    </span> 
    </div> 
    <span onClick="checkem('4452101');"> 
    check this 
    </span> 
    <input type="checkbox" name="numbers[]" id="4452101" value="4452101" /> 
</div> 
</div> 
+0

Avez-vous ajouté une condition si (la valeur de la case à cocher est présente) {utilisez ce style}? – zod

+0

Je vous suggère d'utiliser jQuery si vous êtes autorisé à :) Cela simplifierait beaucoup le tout .. – Jack

+0

Est le problème que cela ne fonctionne pas lorsque quelqu'un revient à la page si le bouton "Précédent" du navigateur est pressé ? – Shagglez

Répondre

2

Il n'y a pas besoin de jQuery dans des questions aussi simples et sans code.

Vous devez utiliser le code comme ceci:

function detectchecked(){ 
    var count = 0; 
    var inputs = myform.getElementsByTagName('input'); 
    for (var i = 0, j = inputs.length; i<j; i++) { 
     var input = inputs[i]; 
     if (input.type && input.type === 'checkbox' && input.checked) { 
      document.getElementById('div'+input.getAttribute('id')).setAttribute('style','Your style here'); 
     } 
    } 
    } 

Bien sûr, si je vous ai bien compris

+0

Je l'ai résolu en utilisant: var pid = input.parentNode.id; – John

1

Avez-vous pensé à utiliser un cadre? JQuery?

Ce scénario va être facile:

$ ('# entrée myform [type = case à cocher]: checked'). Attr ('style', 'votre style');

+0

Comme je l'ai dit dans mon commentaire à la réponse de Bick, j'ai pu obtenir l'ID de la div avec: var pid = input.parentNode.id; – John

Questions connexes