views:

48

answers:

2

I have some radio buttons

<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>

that I turn into jQuery UI buttons

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

What line of code can I use to simulate a click on one of the buttons? I've tried this

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

but it doesn't work. Thanks for reading.

+1  A: 

I believe you're looking for the select event.

$("input[value='"+data.chartype+"']").select();
Jacob Relkin
I believe that would work *if* it was just `input` elements, but with jQuery UI the `input` is hidden and the button recreated from a new `label` and a `span` , thus this won't work. I've tested it ;)
Yi Jiang
+1  A: 

You have to do it with the label element added by jQuery UI. Try:

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

Have a look at it here, in a controlled environment: http://jsfiddle.net/B3d4z/

Yi Jiang
@Yi Jiang - Thanks for your answer, but it didn't work. Nothing happens..
ben
@ben: I think I know the problem... updating my soltion now. The `label` 's `for` attribute matches the `input` 's `id` , not `value`
Yi Jiang
@Yi Jiang - It works! Thanks a lot!
ben