Изменение значения radioButton с использованием setAttribute ('checked', true) изменяет значение переключателя, но не запускает событие изменения.В AlloyUI (или YUI3, я полагаю), как я могу вызвать событие изменения при проверке переключателя с помощью setAttribute?
Это не похоже на YUI или AlloyUI (см., Например, Detecting a change in radio button/checkbox state).
Чтобы обойти эту проблему, я хотел бы программно запустить событие изменения, когда я установил значение моей переключателя.
Как это сделать в пользовательском интерфейсе сплава (я использую Liferay 6.1 GA2)?
Благодаря Alain
Некоторые особенности:
HTML-:
<aui:input type="radio" label="${viewMenuItem.label}" value="${viewMenuItem.value}"
id="${messageWallDisplay.newMessageOptionName}${viewMenuItem.value}"
name="${messageWallDisplay.newMessageOptionName}" data="${viewMenuItem.dataMap}"
checked="${viewMenuItem.value == messageWallDisplay.newMessageOptionDefaultValue}"/>
событие установки делегации (я также попытался обратного вызова событий на радиокнопок):
messageTypeRadioGroup.delegate('change', function (event){
var option = event.currentTarget;
if (option.get("checked")==true){
showHideUserSelection(option);
}
}, 'input[type=radio]');
Атрибут setAttribute, который не вызвать событие изменения:
MWC.newMessageDefaultOption.setAttribute('checked',true);
Я не мог заставить это работать, событие изменения все равно не будет срабатывать. Я задаюсь вопросом, связано ли это с имитацией разработки для целей тестирования и yahoo [предупреждение против использования этого кода пользователя] (http://yuilibrary.com/yui/docs/event/simulate.html#faking). –
Интересно, я не читал достаточно близко. Но лучшим вариантом было бы просто вызвать метод, который также обрабатывает ваше событие изменения. См. Мой обновленный ответ. –
Это на самом деле то, что я закончил делать. Благодаря ! –