Добавление метки в текстовое поле (программно) - PullRequest
5 голосов
/ 03 ноября 2011

Как добавить метку в текстовое поле (программно):

el = new dijit.form.TextBox({label: '...' });
form.containerNode.appendChild(el.domNode);

это не похоже на работу (додзё 1.6)

Ответы [ 4 ]

10 голосов
/ 12 октября 2012

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 голос
/ 03 ноября 2011

Я никогда не видел ни одного примера, где dijit.form.TextBox использует свойство lable для отображения метки рядом с TextBox. Метка всегда является отдельным элементом метки или текстовым узлом.

Я считаю, что TextBox имеет это свойство только потому, что он наследует его от dijit._Widget (в соответствии с API документами ).

Чтобы добавить метку программным способом, просто добавьте отдельный элемент 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);

Здесь - полный пример jsfiddle.

0 голосов
/ 11 мая 2013

Я получил его, используя следующий фрагмент:

dojo.place('<label for="field" > Label Name </label>',dojo.byId('TextField_Id'),'before');
0 голосов
/ 31 августа 2012
yourPlaceholder.domNode.appendChild(dojo.doc.createTextNode("Label Text"));
yourPlaceholder.addChild(yourTextBox);
...