3

让我先说我看到关于 CheckBox 标签主题的另一个问题,该问题在一年前被问到并得到了很好的回答。

我对答案感到困惑,希望有人能澄清一下,或者从那时起引入了新的 dojo 功能,这使我能够在不诉诸 HTML 的情况下做到这一点。

因此,事不宜迟,我想知道如何以编程方式为复选框创建标签。

我有一个这样的复选框:

        this.pubBoxId = new dijit.form.CheckBox({
            label: "IdChannel",
            checked: false,
            channel: that.idChannel
        }, that.name + "_PBI");

如您所见,我尝试编辑“标签”字段,但标签实际上从未出现在页面上。我有多个要添加到 ContentPane 的复选框,并且只希望在复选框的左侧或右侧添加一个标签。有什么方法可以做到这一点而不必编写单独的 HTML?

此外,为每个单独的标签制作单独的 ContentPane 会很痛苦,因为我计划拥有多少 CheckBox。

感谢您的阅读,如果需要进一步说明,请告诉我!

4

2 回答 2

5

它并不完美,但这里有一个关于如何做到这一点的示例:http: //jsfiddle.net/cBPy4/ 一般来说,您必须记住 CheckBox 小部件只会显示框,您必须手动处理标签...

于 2012-06-22T09:47:47.613 回答
0

Dojo 1.6 火狐、Chrome

http://jsfiddle.net/cBPy4/257/

dojo.require("dijit.form.CheckBox");

dojo.ready(function(){    
    // https://bugs.dojotoolkit.org/ticket/11611
    var widgetNode = dojo.doc.createElement("DIV");
    chk = dojo.create("input", {id:"cbox", type:"checkbox"}, widgetNode);
    lbl = dojo.create("label", {innerHTML:"Check me", "for":"cbox"}, widgetNode);
    dojo.style(lbl, "marginLeft", ".5em");

    var cbWidget = new dijit.form.CheckBox({}, chk);
    cbWidget.startup();
    cbWidget.domNode.appendChild(lbl);

    dojo.place(cbWidget.domNode, "container");
});
于 2013-06-13T14:55:51.450 回答