gpt4 book ai didi

widget - Dojo RadioButton,以编程方式设置组

转载 作者:行者123 更新时间:2023-12-04 12:49:13 26 4
gpt4 key购买 nike

我有一个自定义小部件“MyWidget”,其中包含三个我希望属于同一个“组”的单选按钮。
如果我在模板文件的单选按钮中设置了“名称”属性,那么问题是当我创建多个“MyWidget”小部件时,所有单选按钮共享同一个组。

我试图将单选按钮的“名称”与

radioWifget.set('name', some_value) 

没有成功,也直接进入 DOM 代码:
dojo.query("INPUT[type='radio']", this.domNode).forEach( dojo.hitch(this, function(inputNode){
inputNode.name = 'perill_'+this.id;
}));

第二种形式设置名称 attrbitue 但它不能作为一个组工作。

任何帮助。

提前致谢。

我道歉,因为我自己找到了答案。

我会冒着别人对我投反对票的风险,但更愿意把解决方案放在这里,因为也许可以帮助我以外的人。

解决方案是“MyWidget”模板中的单选按钮必须包含在“dijit.form.Form”小部件中。这样每个“MyWidget”都会有自己的单选按钮组。

最佳答案

我会选择自定义 FormValueWidget 并混合 _WidgetsInTemplateMixin,如下所示:

declare([
"dojo/_base/declare",
"dijit/form/_FormValueWidget",
"dijit/_WidgetsInTemplateMixin",
"dijit/form/RadioButton",
"dojo/domReady!"
], function (declare, _FormValueWidget, _WidgetsInTemplateMixin) {

return declare([_FormValueWidget, _WidgetsInTemplateMixin], {
templateString: "<div><h2>Group of radioBtns '${name}'</h2>" +
"<input type='radio' ${!nameAttrSetting} data-dojo-attach-point='focusNode' data-dojo-type='dijit/form/RadioButton' checked='checked' data-dojo-props='value:\"radio1\"'></input>" +
"<input type='radio' ${!nameAttrSetting} data-dojo-type='dijit/form/RadioButton' data-dojo-props='value:\"radio2\"'></input>" +
"<input type='radio' ${!nameAttrSetting} data-dojo-type='dijit/form/RadioButton' data-dojo-props='value:\"radio3\"'></input>" +
"<input type='hidden' value='${value}'/>" +
"</div>",
_getValueAttr : function() {
var selectedRadio = registry.findWidgets(this.domNode).filter(function(w){
return w.get("checked");
}).pop();
return selectedRadio.get("value");
}
});
});

在此处查看示例: http://jsfiddle.net/psoares/FdMEU/

关于widget - Dojo RadioButton,以编程方式设置组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120350/

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