Dojo dijit.form.select:创建一个新的选择部件后,旧部件的选定值无法更改

问题描述:

我正在使用javascript功能在div点击事件中创建新的选择框。Dojo dijit.form.select:创建一个新的选择部件后,旧部件的选定值无法更改

当用户点击div时,会在页面的其他地方创建一个新的选择框(以及其他东西)。

具体地,在一个div点击,创建以下形式的字符串(在JavaScript函数):

<select id="derp"+divName dojoType="dijit.form.Select" onChange="dosomething()"> 
    <option value="foo">foo</option> 
    <option value="bar">bar</option> 
    ... 
</select> 

然后我调用一个函数来widgetize上述选择:

function makeDojoWidget(digitID){ 
    var widget = new dijit.form.Select({},digitID); //options,elementID 
} 

它创建的部件就好了。当用户点击另一个div时,它会创建另一个选择框。但是只有新的选择是可编辑的。即我不能改变其他选择框的选定值。

它工作正常,当我不试图呈现它作为dijit,所以它似乎是一个道场问题(即如果我创建一个常规的选择,我可以改变所有选择的值,当我做新选择)。

我很难过......有什么建议吗?

+0

如果在函数的作用域之外声明var小部件会发生什么? – perissf 2011-12-14 13:06:33

试着强制启用它。 在你的函数

function makeDojoWidget(digitID){ 
var widget = new dijit.form.Select({},digitID); //options,elementID 
} 

readOnly的设置为false一些单词。

function makeDojoWidget(digitID){ 
var widget = new dijit.form.Select({readOnly:false},digitID); //options,elementID 
}