【问题标题】:Dojo dijit.form.select: selected value of old widget cannot be changed after I create a new select widgetDojo dijit.form.select:创建新的选择小部件后,旧小部件的选定值无法更改
【发布时间】: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 小部件会怎样?
  • 你的digitIDs 是独一无二的吗?您是否有任何理由没有完全以编程方式制作和放置小部件?

标签: javascript dojo


【解决方案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
}

【讨论】:

    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    相关资源
    最近更新 更多