setAttribute('checked',true) を使用して radioButton の値を変更すると、ラジオ ボタンの値が変更されますが、change イベントは発生しません。
これは、YUI または AlloyUI に限定されているようには見えません (たとえば、ラジオ ボタン/チェックボックスの状態の変化の検出を参照してください)。
この問題を回避するには、ラジオ ボタンの値を設定するときにプログラムで変更イベントを発生させたいと考えています。
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);