dojo1.8-尝试注册,但。已注册-构建选择小部件
您好,我很难确定select的id在哪里注册。 可能的原因: 1) ParseOnload和Parser.parse()位于同一页上 2) 将相同的id提供给另一个新选择 3) 使用新id注册相同的select 我想不出是什么原因导致select注册了两次dojo1.8-尝试注册,但。已注册-构建选择小部件,dojo,Dojo,您好,我很难确定select的id在哪里注册。 可能的原因: 1) ParseOnload和Parser.parse()位于同一页上 2) 将相同的id提供给另一个新选择 3) 使用新id注册相同的select 我想不出是什么原因导致select注册了两次 ... ... <div id='main_bContainer' data-dojo-type='dijit/layout/BorderContainer' data-dojo-props='design:"sidebar"'>
...
...
<div id='main_bContainer' data-dojo-type='dijit/layout/BorderContainer' data-dojo-props='design:"sidebar"'>
<div id='paneA' class='cP_Left' data-dojo-type='dijit/layout/ContentPane' data-dojo-props='region:"left"'>
<div id='surfaceElement1' style='border:1px solid #ccc; margin-bottom:5px; width:317px; height:55px;'><!--these dimensions here in this line override the dimensions as set by createSurface function-->
<div id='node_meterSelect'></div>
</div>
<div id='surfaceElement2' style='border:1px solid #ccc; width:317px; height:200px;'><!--these dimensions here in this line override the dimensions as set by createSurface function-->
<div id='node_cardSelect'></div>
</div>
</div>
<div id='paneB' class='cP_Right' data-dojo-type='dijit/layout/ContentPane'data-dojo-props='region:"center"'>
<!--<div id='surfaceElement3' style='border:1px solid #ccc;'> <!--width:520px; height:400px;'><!--it's the size-->
<!--</div>-->
</div>
</div>
...
...
...
var meter_Select = new Select
({store:memoStore1,
style:{width:'140px'},
}, "node_meterSelect");
meter_Select.startup();
on(meter_Select, 'change', function(evt)
{
console.debug('Selected Card = '+ meter_Select.value);
request.post('listofcards.php',{data:{cardX : meter_Select.value},
handleAs:"json"}).then(function(response)
...
...
。。。
...
...
...
...
var仪表_选择=新选择
({store:memoStore1,
样式:{宽度:'140px'},
}“节点_计量选择”);
仪表_选择启动();
打开(仪表选择“更改”,功能(evt)
{
console.debug('Selected Card='+meter_Select.value);
request.post('listofcards.php',{data:{cardX:meter\u Select.value},
handleAs:“json”})。然后(函数(响应)
...
...
错误是“
错误:试图注册id==node_meterSelect的小部件,但该id已注册“
可能是什么问题?请建议..提前感谢。以下是一个基于您的代码的工作JSFIDLE: 也许你在代码中的其他地方使用了id
require(["dijit/form/Select",
"dojo/data/ObjectStore",
"dojo/store/Memory","dojo/domReady!"
], function(Select, ObjectStore, Memory){
var store1 = new Memory({
data: [
{ id: "foo", label: "Foo" },
{ id: "bar", label: "Bar" }
]
});
var os = new ObjectStore({ objectStore: store1 });
var meter_Select = new Select
({store:os,
style:{width:'140px'},
}, "node_meterSelect");
meter_Select.startup();
})
我找到了您的解决方案。您没有将所有必需的值映射到正确的变量!因此注册表和combobox没有正确映射!您将“combobox”映射到“on” 看看这个JSFIDLE: 缺少参数的函数头:
function (parser, ready, dom, domConstruct, gfx, declare,
_WidgetBase, Memory, Select, ObjectStore, request, on)
更正后:
function (parser, ready, dom, domConstruct, gfx, declare,
_WidgetBase, Memory, Select, ObjectStore, request,box,registry, on)
所以我不得不添加box和registry,现在一切都应该正常了