Dojo RadioButton,以编程方式设置组

Eri*_*ron 7 dojo widget

我有一个自定义小部件'MyWidget',有三个radion按钮我希望是同一个"组".如果我在模板文件的radiobuttons中设置'name'属性,那么问题是当我创建多个'MyWidget'小部件时,所有radiobuttons共享同一个组.

我试着把单选按钮的'名称'放在上面

radioWifget.set('name', some_value) 
Run Code Online (Sandbox Code Playgroud)

没有成功,也直接使用DOM代码:

dojo.query("INPUT[type='radio']", this.domNode).forEach( dojo.hitch(this, function(inputNode){
    inputNode.name = 'perill_'+this.id;
}));
Run Code Online (Sandbox Code Playgroud)

第二个表单设置名称attrbitue但它不作为一个组.

任何帮助.

提前致谢.


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

我会冒险让别人投票给我,但更愿意把解决方案放在这里,因为也许可以帮助我以外的其他人.

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

Phi*_*ppe 2

我会选择一个自定义的 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");
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

请参阅此处的示例: http: //jsfiddle.net/psoares/FdMEU/