gpt4 book ai didi

liferay - 在 AlloyUI(或者我想是 YUI3)中,如何在使用 setAttribute 检查单选按钮时触发更改事件?

转载 作者:行者123 更新时间:2023-12-01 07:15:21 27 4
gpt4 key购买 nike

使用 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}"/>

事件委托(delegate)设置(我还尝试了单选按钮上的事件回调):

  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);

最佳答案

这里的答案看起来像您想要完成的:Javascript: simulate a click on a link

如果 MWC.newMessageDefaultOption 是您的 radio 节点,您可以这样做:

MWC.newMessageDefaultOption.simulate('change');

如注释中所述,模拟用于测试目的。最佳实践:

var doThingsOnChangeFunc = function(arg1, arg2) {
// do things!
}

myNode.on(
'change',
function(event) {
var arg1 = event.currentTarget;
var arg2 = "something";

doThingsOnChange(arg1, arg2);
}
);

然后当您以编程方式更改单选按钮\复选框时:

myNode.setAttribute('checked', true);

doThingsOnChange(arg1, arg2);

关于liferay - 在 AlloyUI(或者我想是 YUI3)中,如何在使用 setAttribute 检查单选按钮时触发更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16972755/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com