2010-09-05 7 views
0

J'ai un formulaire pour créer un objet Ruby on Rails. Une partie du formulaire utilise des boutons radio pour choisir un attribut. J'utilise ensuite jQuery UI to display the buttons, comme ça.Résultat différent entre un utilisateur qui clique sur un bouton de l'interface utilisateur jQuery et qui utilise jQuery click() dessus?

<head> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#typeRadios").buttonset(); 
    }); 
</script> 
</head> 
<body> 
<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_b" name="character[chartype]" type="radio" value="B" /><label for="character_chartype_b">B</label> 
</div> 
</body> 

Tout cela fonctionne très bien. Je clique sur un bouton, puis lorsque le formulaire est soumis, l'attribut est enregistré correctement.

Le problème est que je dois être en mesure de cliquer sur un des boutons par programmation. En ce moment, je fais ceci:

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

Cela fonctionne dans le sens que visuellement le bouton apparaît cliqué, mais lorsque le formulaire est soumis, l'attribut est pas enregistré. Qu'est-ce qui cause ce comportement? Merci d'avoir lu.

EDIT: Correction d'une faute

Répondre

2

Vous devez cliquer sur le bouton radio directement comme ceci:

$("#character_chartype_" + data.chartype).click(); 

Il -t cliquez sur le bouton, il vous suffit de dire jQuery UI pour rafraîchir son état visuel à l'aide après the refresh method, comme ceci:

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

Donc, dans l'ensemble cela devrait le faire:

$("#character_chartype_" + data.chartype).click(); 
$("#typeRadios").buttonset("refresh"); 
+0

Merci - Je cherchais cette option depuis un moment aussi –

0
  1. un identifiant doit être unique. juste un c & p échec? Pourquoi ne pas "cliquer" directement sur le bouton radio?
$("#character_chartype_" + data.chartype).click()
+0

Parce qu'il est jQuery UI - voir cette question précédente: http://stackoverflow.com/questions/3593301/how-can-i-simulate-a-click-on-a-jquery-ui-radio- button –

+0

@YiJiang - Cliquer sur le '

Questions connexes