12

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.

3 Answers 3

6

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/

Sign up to request clarification or add additional context in comments.

2 Comments

@ben: I think I know the problem... updating my soltion now. The label 's for attribute matches the input 's id , not value
but... it does not fire an event when you simulate the click. jsfiddle.net/XrCNj Ideas on how to fire the event?
1

I believe you're looking for the select event.

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

1 Comment

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 ;)
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());
        });

    });

This example shows how to get the ID and Value when you click on a label that belongs to a jQueryUI radio.

Happy coding :)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.