вызов обработчика события change (), если я выберу радиокнопку программно - PullRequest
8 голосов
/ 01 апреля 2012

У меня есть HTML, как это:

<input type="radio" name="type" value="FL" checked="checked" />Fixed
<input type="radio" name="type" value="SV" />Saving
<input type="radio" name="type" value="L2" />Type 2

и следующий скрипт

$(function () {
        $('input[name=type]').change(function () {
            alert($(this).val());
        });
        $('input[value=SV]').attr('checked', 'checked');
    });

Во-первых, добавили событие изменения к переключателю. изменение обработчика событий срабатывает, если я выбираю переключатель в пользовательском интерфейсе. Но это не срабатывает, когда я изменяю выбранное значение радиокнопки программно.

Я хочу, чтобы change event также срабатывал при программном выборе радиокнопки.

Ответы [ 2 ]

9 голосов
/ 01 апреля 2012

Вы можете использовать trigger(), чтобы программно вызвать событие:

$(function () {
    $('input[name=type]').change(function () {
        alert($(this).val());
    });
    $('input[value=SV]').attr('checked', 'checked').trigger('change');        
});
1 голос
/ 01 апреля 2012

Это не изменится автоматически. Вы должны сделать одно из следующего:

либо

$('input[value=SV]').attr('checked', 'checked').trigger("change")

или

$('input[value=SV]').attr('checked', 'checked').change();
...