2011-08-09 4 views
1

Je souhaite modifier la radio btn cochée en cliquant sur une image créée dynamiquement. Ceci est le PHP générer mon image:Bouton radio dans les images créées dynamiquement

<?php if($subject_list){ 
     foreach ($subject_list as $item):?> 
      <input type="radio" name="subjectagendaactivity" value="male" /> 
      <img src="/static/images/school/students/subjects/island/island_<?php echo $item['id'];?>_agenda.png"/> 
     <?php endforeach;}?> 

Donc, mes images sont générées comme ceci et cela est le code je l'ai fait en JQuery pour être en mesure de changer le .cheked:

$(this).click(function() { 
       $('input:radio[name=subjectagendaactivity]')[0].checked = true; 
      }); 

Je dois changez le [0] en $ (ceci) ou quelque chose comme ça afin que mon radio btn soit cochée quand je clique sur la bonne image.

+0

Les balises 'img' sortent-elles avec des ID ou des classes? –

+0

je peux ajouter un ID si j'en ai besoin d'un, pas de problème! –

Répondre

1

Would quelque chose comme ce travail pour vous ?: http://jsfiddle.net/FsshJ/ Le seul inconvénient est qu'il exige à la fois la img et la input avoir des ID. Cependant, vous pourriez le changer en quelque chose d'autre si vous le vouliez/si nécessaire.

+0

Merci! ça marche bien! –

0

Essayez ceci:

$(this).click(function() { 
       $('input:radio[name=subjectagendaactivity]').attr("checked", true); 
      }); 
+0

Quand je le fais, je vérifie toujours la dernière case –

+0

Où est exécuté ce code? Qu'est-ce que «ceci» indique? – ShankarSangoli

+0

Merci pour votre aide, je l'apprécie. Le problème est résoudre par Andrew Peacock si vous voulez voir comment je l'ai fait, merci encore –

0
$(this).click(checkIt($(this))); 



// Elsewhere 
function checkIt(rBtn) { 
    rBtn.checked = true; 
} 
+0

Cela ne fonctionne pas avec mon code. –

0

essayez ceci:

$('input:radio[name=subjectagendaactivity]').each(function(index) { 
if(index == 0) 
{ 
    $(this).attr("checked","checked"); 
    return; 
} 
}); 
+0

Ne fonctionne pas, me disant $ ("entrée: radio [name = subjectagendaactivity]") [0] .attr n'est pas une fonction –

+0

mis à jour essayer maintenant – kleinohad

+0

Encore ne fonctionnait pas, peut-être que je faisais quelque chose de mal. Merci quand même problème est résolu! –

0

En supposant que la case à cocher vous voulez vérifier est toujours l'élément avant l'image que vous cliquez sur:

$('img').click(function() { 
    var $check = $(this).prev(':checkbox'); 

    if($check.is(':checked'){ // Already checked? Uncheck it! 
     $check.removeAttr('checked'); 
    } 
    else{ 
     $check.attr('checked','checked'); 
    } 
}); 

Jetez un oeil à jQuery's traversal methods; Vous devriez pouvoir en trouver un qui vous permettra de saisir vos cases par convention.

Questions connexes