如何在文本框中添加标签(以编程方式):
el = new dijit.form.TextBox({label: '...' });
form.containerNode.appendChild(el.domNode);
这似乎不起作用(dojo 1.6)
答案 0 :(得分:10)
Dojo提供了dojox.layout.TableContainer,用于自动将标签与控件配对:
var layout = new dojox.layout.TableContainer({
showLabels: true,
orientation: "horiz"
});
var textBox = new dijit.form.TextBox({
name: 'text',
title: 'My Label'
});
layout.addChild(textBox);
layout.placeAt(form.containerNode);
layout.startup();
jsfiddle(感谢模板,@ jumpnett)
答案 1 :(得分:1)
我从未见过任何dijit.form.TextBox使用lable属性实际显示TextBox旁边的标签的示例。标签始终是单独的标签元素或textnode。
我相信TextBox只有这个属性,因为它从dijit._Widget继承它(根据API docs)。
要以programmaticaly方式添加标签,只需将单独的textnode或label元素附加到表单的domNode:
dojo.require("dijit.form.Form");
dojo.require("dijit.form.TextBox");
function buildForm() {
var form = new dijit.form.Form({
}, dojo.doc.createElement('div'));
var textBox = new dijit.form.TextBox({
name: 'text'
}, dojo.doc.createElement('input'));
document.body.appendChild(form.domNode);
form.domNode.appendChild(dojo.doc.createTextNode("My Label "));
form.domNode.appendChild(textBox.domNode);
}
dojo.addOnLoad(buildForm);
Here是关于jsfiddle的完整示例。
答案 2 :(得分:0)
yourPlaceholder.domNode.appendChild(dojo.doc.createTextNode("Label Text"));
yourPlaceholder.addChild(yourTextBox);
答案 3 :(得分:0)
我使用以下代码段获得了它:
dojo.place('<label for="field" > Label Name </label>',dojo.byId('TextField_Id'),'before');