Dojo:以编程方式设置CheckBox标签

时间:2012-06-20 21:13:35

标签: javascript checkbox label dojo

让我先说一下,我看到this关于CheckBox标签主题的另一个问题,这个问题在一年前就得到了回答。

我对这些答案感到困惑,并希望有人能够澄清,或者从那时起引入了新的dojo功能,这使得我可以在不使用HTML的情况下实现这一目的。

所以不用多说,我想知道如何以编程方式为复选框创建标签。

我有一个像这样的复选框:

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

正如您所看到的,我已尝试编辑“标签”字段,但标签从未真正显示在页面上。我有多个CheckBoxes,我将添加到ContentPane,只需要复选框左侧或右侧的标签。有没有办法,我可以做到这一点,而无需编写单独的HTML?

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

感谢您阅读,如果需要进一步澄清,请告诉我们!

2 个答案:

答案 0 :(得分:5)

这不完美,但这里有一个如何做到的例子:http://jsfiddle.net/cBPy4/ 通常,您必须记住CheckBox小部件只显示该框,您必须手动处理标签...

答案 1 :(得分:0)

Dojo 1.6 Firefox,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");
});