Dojo dijit.form.select:创建新的选择小部件后,旧小部件的选定值无法更改
Posted
技术标签:
【中文标题】Dojo dijit.form.select:创建新的选择小部件后,旧小部件的选定值无法更改【英文标题】:Dojo dijit.form.select: selected value of old widget cannot be changed after I create a new select widget 【发布时间】:2011-12-14 12:31:09 【问题描述】:我正在通过 javascript 函数在 div 点击事件上创建新的选择框。
当用户单击 div 时,会在页面的其他位置(以及其他内容)创建一个新的选择框。
具体来说,在单击 div 时,我创建了一个字符串(在 javascript 函数中),格式如下:
<select id="derp"+divName dojoType="dijit.form.Select" onChange="dosomething()">
<option value="foo">foo</option>
<option value="bar">bar</option>
...
</select>
然后我调用一个函数来对上面的选择进行小部件化:
function makeDojoWidget(digitID)
var widget = new dijit.form.Select(,digitID); //options,elementID
它可以很好地创建小部件。当用户单击另一个 div 时,它会创建另一个选择框。但是,只有新选择是可编辑的。即我无法更改其他选择框的选定值。
当我不尝试将其呈现为 dijit 时,它工作正常,所以这似乎是一个 dojo 问题(即,如果我创建一个常规选择,我可以在创建一个新选项时更改所有选择的选定值选择)。
我很难过...有什么建议吗??
【问题讨论】:
如果在函数范围之外声明 var 小部件会怎样? 你的digitID
s 是独一无二的吗?您是否有任何理由没有完全以编程方式制作和放置小部件?
【参考方案1】:
尝试强制启用它。 在你的功能中的一些话
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
【讨论】:
以上是关于Dojo dijit.form.select:创建新的选择小部件后,旧小部件的选定值无法更改的主要内容,如果未能解决你的问题,请参考以下文章
如何添加 optgroup do dijit.form.Select 或其他小部件类型