让我先说一下,我看到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。
感谢您阅读,如果需要进一步澄清,请告诉我们!
答案 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");
});