2011-03-18 38 views
2

的JavaScript代码中动态创建下拉框中的新选项:如何使用Dojo

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

我想道场相当于上面的代码

回答

7

我认为这将是:

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

刚阅读关于dojo的dom功能的documentation,这很简单。

祝你好运!

0

两个选项:

选项1:

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

选项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")); 
}); 
2

你已经在使用道场(dojo.byId)。

Dojo不替代JavaScript(它增加了它)。当事情在JavaScript中已经很清晰或简洁时,它不会试图提供一种替代正常JavaScript的方式。

在你的榜样,您可以尝试:

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

这直接造成了<select>元素(我假设是 “XYZ”)里面的<option>标签。但是,有些浏览器似乎不喜欢直接添加<option>标签,而不是将其添加到options属性中。如果是这样,你可以使用<select>标签本身的add功能:

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

注意,比调用dojo.create是simpifies创建元素,一切有关增加一个选项,一个<select>另一种是标准的JavaScript。

2

由于innerHTML并不在IE浏览器,我没有如下,它的工作:

 option = document.createElement('option'); 
    option.text = 'xyz'; 
    option.value = 'val'; 
    dojo.byId('commodities').add(option);

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

为我工作在道场1.6

+0

感谢把代码块...这是新的 – ivandov 2012-11-26 16:01:16