2012-06-20 3 views
3

Permettez-moi de préface en disant que j'ai vu this autre question sur le thème des étiquettes CheckBox qui a été posée et répondue il y a plus d'un an.Dojo: Définition d'un label CheckBox par programme

J'ai été troublé par les réponses et j'espère que quelqu'un peut clarifier ou qu'il y a eu une nouvelle fonctionnalité de dojo introduite depuis lors qui me permet de le faire sans avoir recours au HTML.

Donc, sans plus tarder, je voudrais savoir comment créer par programmation des étiquettes pour les cases à cocher.

J'ai une case à cocher comme ceci:

 this.pubBoxId = new dijit.form.CheckBox({ 
      label: "IdChannel", 
      checked: false, 
      channel: that.idChannel 
     }, that.name + "_PBI"); 

Comme vous pouvez le voir, je l'ai essayé de modifier le champ « label », mais l'étiquette ne montre en fait sur la page. J'ai plusieurs CheckBox que j'ajoute à un ContentPane et je veux simplement une étiquette à gauche ou à droite de la case à cocher. Est-il possible de le faire sans avoir à écrire du HTML séparé?

En outre, créer un ContentPane distinct pour chaque libellé individuel serait très pénible en raison du nombre de CheckBox que je prévois d'avoir.

Merci d'avoir lu, et faites-moi savoir si des précisions sont nécessaires!

Répondre

5

Ce n'est pas parfait, mais voici un exemple sur la façon dont vous pouvez le faire: http://jsfiddle.net/cBPy4/ En général, vous devez vous rappeler que widget CheckBox va simplement afficher la boîte, vous devez gérer l'étiquette manuellement ...

+0

Oui qui est à peu près ce que je cherchais. J'ai finalement décidé de passer à un menu avec des boutons activés à bascule, mais si j'étais resté avec des cases à cocher cela aurait fonctionné. Merci! –

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"); 
}); 
Questions connexes