将标签添加到文本框(以编程方式)

ste*_*ten 5 javascript dojo label textbox

如何在文本框中添加标签(以编程方式):

el = new dijit.form.TextBox({label: '...' });
form.containerNode.appendChild(el.domNode);
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用(道场1.6)

小智 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();
Run Code Online (Sandbox Code Playgroud)

jsfiddle(感谢模板,@ jumpnett)


jum*_*ett 1

我从未见过 dijit.form.TextBox 使用 lable 属性在 TextBox 旁边实际显示标签的任何示例。标签始终是单独的标签元素或文本节点。

我相信 TextBox 仅具有此属性,因为它从 dijit._Widget 继承它(根据API 文档)。

要以编程方式添加标签,只需将单独的文本节点或标签元素附加到表单的 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);
Run Code Online (Sandbox Code Playgroud)

是 jsfiddle 的完整示例。