2010-08-29 9 views
12

J'ai quelques boutons radioComment puis-je simuler un clic sur un bouton radio jQuery UI?

<div id="typeRadios"> 
    <input id="character_chartype_a" name="character[chartype]" type="radio" value="A" /><label for="character_chartype_a">A</label> 
    <input id="character_chartype_a" name="character[chartype]" type="radio" value="B" /><label for="character_chartype_b">B</label> 
</div> 

que je me transforme en boutons jQuery UI

$("#typeRadios").buttonset(); 

Quelle ligne de code puis-je utiliser pour simuler un clic sur l'un des boutons? J'ai essayé ceci

// here data.chartype equals "A" 
$("input[value='"+data.chartype+"']").click(); 

mais cela ne fonctionne pas. Merci d'avoir lu.

Répondre

6

Vous devez le faire avec l'élément label ajouté par jQuery UI. Essayez:

$("label[for='character_chartype_"+data.chartype+"']").click(); 

Jetez un coup d'oeil ici, dans un environnement contrôlé: http://jsfiddle.net/B3d4z/

+0

@Yi Jiang - Merci pour votre réponse, mais cela n'a pas fonctionné. Rien ne se passe .. – ben

+0

@ben: Je pense que je connais le problème ... mettre à jour ma soltion maintenant. L 'attribut 'for' de' label' correspond 'l' 'id' de' '' 'de' '' '' '' de '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'que' '' '' '' value' –

+0

Merci beaucoup! – ben

1

Je crois que vous recherchez l'événement select.

$("input[value='"+data.chartype+"']").select(); 
+0

Je crois que cela fonctionnerait * si * il était juste 'éléments input', mais avec jQuery UI la' input' est caché et le bouton recréés à partir d'une nouvelle 'label' et' span', donc cela ne fonctionnera pas. Je l'ai testé;) –

0
<div class="radioVote"> 
<input type="radio" id="radio1" name="radio" value="1"/><label for="radio1">ONE</label> 
<input type="radio" id="radio2" name="radio" value="2"/><label for="radio2">TWO</label> 
</div> 



$(document).ready(function(){ 

     $(".radioVote").buttonset(); 

     $('[for^=radio]').click(function() { 
      var theRadioElement = $(this).prev(); 
      alert("Button" + theRadioElement.attr('id') + " clicked. VALUE:" + theRadioElement.val()); 
     }); 

    }); 

Cet exemple montre comment obtenir l'ID et la valeur lorsque vous cliquez sur une étiquette qui appartient à un jQueryUI radio.

:) Bonne programmation

Questions connexes