jQuery как изменить buttonset

Я новичок в jQuery и думал, что буду использовать его buttonset вместо некоторых переключателей в моем приложении. Документация здесь: http://jqueryui.com/demos/button/#radio

Как добавить обработчик к событию, когда набор кнопок изменяет значение?

вот фрагмент кода, который я пробовал:

$('input.tod_quant').change(function() {
    alert('TEST');
});

а затем позже в HTML:

<span id="tod_quant" class="buttonset">
        <input type="radio" id="tod_quant5" name="tod_quant" value="5" /><label for="tod_quant5">5-Minute</label>
        <input type="radio" id="tod_quant60" name="tod_quant" checked="checked" value="60" /><label for="tod_quant60">60-Minute</label>
        </span>

событие "изменение" никогда не срабатывает. Есть ли вообще событие изменения? Как может Я делаю это? Кроме того, есть ли какая-либо документация с примером? http://jqueryui.com имеет множество примеров,и ни один из них, который я могу найти, не показывает никаких событий. Полагаю, мое незнание jQuery не совсем помогает ситуации.

любая помощь была бы весьма признательна. Спасибо.

4 ответов


нет change событие для кнопок в jQuery-UI.

вы должны прослушать изменение или щелкнуть событие базовых радиокнопок:

http://jsfiddle.net/marcosfromero/kr2Xc/


ха! Проблема решена. Я взламывал это весь день, и это было прямо передо мной.

Мне просто нужно было изменить, как я выбирал элемент для этого:

$('#tod_quant')

У меня была эта проблема, и я решил это, как показано ниже: Я создал обработчик событий для меток:

$('.label-class').click(LabelClicked);
$('.input-class').change(InputChanged);
function LabelClicked() {
    var input = $('#' + $(this).attr('for'));
    if(input) 
        input.trigger('change'); 
    return true;
}
function InputChanged() {
    //do your work with this event
}

нет другого пути! Я попробовал несколько способов и, наконец, решил сделать это


    <script>
    $(function() {
        $( "#radio" ).buttonset();
    });
    </script>



<div class="demo">

<form>
    <div id="radio">
        <input type="radio" id="radio1" name="radio" /><label for="radio1">Choice 1</label>
        <input type="radio" id="radio2" name="radio" checked="checked" /><label for="radio2">Choice 2</label>
        <input type="radio" id="radio3" name="radio" /><label for="radio3">Choice 3</label>
    </div>
</form>

используйте этот код и проверьте, включаете ли вы jquery.js и jqueryui.файлы js или нет.