2011-11-03 14 views

उत्तर

1

मैंने काम करने के लिए प्रतीत नहीं होता किसी भी उदाहरण को कभी नहीं देखा जहां dijit.form.TextBox वास्तव में टेक्स्टबॉक्स के बगल में एक लेबल प्रदर्शित करने के लिए योग्य संपत्ति का उपयोग करता है। लेबल हमेशा एक अलग लेबल तत्व या textnode है।

मेरा मानना ​​है कि टेक्स्टबॉक्स में केवल यह संपत्ति है क्योंकि इसे इसे dijit._Widget से प्राप्त होता है (API docs के अनुसार)।

programmaticaly लेबल जोड़ने के लिए, बस प्रपत्र के domNode को एक अलग textnode या लेबल तत्व संलग्न:

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 पर एक पूर्ण उदाहरण है।

+1

'_Widget' की लेबल संपत्ति वास्तव में एक dojo.extend कॉल से आ रही है 'dojox/lay में बाहर/TableContainer'। मैंने डेजो मेलिंग सूची http://dojo-toolkit.33424.n3.nabble.com/ValidationTextBox-label-property-td3287477.html पर यही प्रश्न पूछा। ध्यान दें कि इस संपत्ति के साथ भी, यह पृष्ठ पर स्वचालित रूप से कहीं भी प्रदर्शित नहीं होगा। – BuffaloBuffalo

+0

@BuffaloBuffalo अतिरिक्त अंतर्दृष्टि के लिए धन्यवाद। मैंने कल स्रोत में देखा और वास्तव में लेबल संपत्ति को कहीं भी परिभाषित नहीं कर सका। – jumpnett

0
yourPlaceholder.domNode.appendChild(dojo.doc.createTextNode("Label Text")); 
yourPlaceholder.addChild(yourTextBox); 
10

डोजो स्वचालित रूप से नियंत्रण के साथ लेबल युग्मित होने के लिए 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 के लिए धन्यवाद)

+0

यह कमाल है! हालांकि, मुझे नहीं लगता कि आपको अंत में स्टार्टअप कॉल की आवश्यकता है। उम्मीद है की यह मदद करेगा! – streetlight

0

मैं निम्नलिखित स्निपेट का उपयोग कर यह मिल गया:

dojo.place('<label for="field" > Label Name </label>',dojo.byId('TextField_Id'),'before');