使用 setAttribute('checked',true) 更改单选按钮的值会更改单选按钮的值,但不会触发更改事件。
这似乎不限于 YUI 或 AlloyUI(例如,请参阅Detecting a change in radio button/checkbox state)。
为了解决这个问题,我想在设置单选按钮的值时以编程方式触发更改事件。
我如何在 Alloy UI 中做到这一点(我使用的是 Liferay 6.1 GA2)?
谢谢阿兰
一些细节:
的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]');
不触发 change 事件的 setAttribute:
MWC.newMessageDefaultOption.setAttribute('checked',true);