Comment créer dynamiquement une nouvelle option de la liste déroulante à l'aide du dojo

Code JavaScript:

var ref =dojo.byId("xyz"); var optn = document.createElement("OPTION"); optn.text="txt" optn.value="val" ref.options.add(optn); 

Je veux dojo équivalent du code ci-dessus

Je pense que ce serait:

 var ref = dojobyId("xyz"); dojo.create("option", { value: "some", innerHTML: "label of option"}, ref); 

Il suffit de lire la documentation sur les fonctions dom du dojo, c'est assez simple.

Bonne chance!

Vous utilisez déjà Dojo (dojo.byId).

Dojo ne remplace pas JavaScript (il l'augmente). Lorsque les choses sont déjà claires ou concises dans JavaScript, cela ne tente pas de fournir une alternative à la manière normale de JavaScript de le faire.

Dans votre exemple, vous pouvez essayer:

 dojo.create("option", { text:"txt", value:"val" }, dojo.byId("xyz")); 

Cela crée la <option> directement à l'intérieur de l'élément <select> (que je suppose est "xyz"). Cependant, certains navigateurs ne semblent pas aimer ajouter des balises <option> directement comme ceci au lieu de l'ajouter à la propriété des options . Si c'est le cas, vous pouvez utiliser la fonction d' add de la <select> elle-même:

 dojo.byId("xyz").add(dojo.create("option", { text:"txt", value:"val" })); 

Notez que, autre que l'appel à dojo.create cela simplifie la création d'éléments, tout ce qui concerne l'ajout d'une option à un <select> est un JavaScript standard.

Comme innerHTML ne fonctionne pas dans IE, j'ai fait comme suit, cela a fonctionné:

  Option = document.createElement ('option');
     Option.text = 'xyz';
     Option.value = 'val';
     Dojo.byId ('commodities'). Ajouter (option); 

 dijit.byId('mySelect').addOption({ label: 'text' , value: 'val' }); 

J'ai travaillé pour moi dans Dojo 1.6

Deux options:

Option 1:

 dojo.require("dijit.form.Select"); var ref = dojo.byId("xyz"); dojo.create("option", { value: "val", innerHTML: "label of option" }, ref); 

Option 2:

 dojo.require("dijit.form.Select"); dojo.ready(function() { new dijit.form.Select({ name: 'myName', options: [{{ label: 'xyz', value: 'val', selected: true }] }).placeAt(dojo.byId("xyz")); });