2013-03-19 175 views
0

您好,我很難找出select的id在哪裏再次嘗試註冊。 可能的原因: - 1)ParseOnload和Parser.parse()在同一個頁面 2)給予同樣的ID到另一個新的選擇 3)註冊新的IDdojo1.8 - 試圖註冊但。 。 。已經註冊 - 建設選擇部件

我想不出什麼原因同樣選擇選擇要註冊兩次。

... 
... 
<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) 
... 
... 

的錯誤是「

錯誤:試圖用ID == node_meterSelect控件註冊,但該ID已被註冊」 可能是什麼問題呢?請指教..提前致謝。

回答

0

我找到了你的解決方案。您不會將所有要求值映射到正確的變量!所以註冊表和組合框沒有正確映射!您將「組合框」映射到「開」。

看看這個的jsfiddle:

http://jsfiddle.net/ejEGr/7/

你的函數頭缺少參數:

校正
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) 

所以我不得不添加盒&註冊表,現在一切都應該窩很好。

+0

非常感謝。你的幫助解決了它。所以我很尷尬! – user1739825 2013-03-20 08:57:38

+0

這也發生在我身上! – 2013-03-20 09:01:38

0

這是基於你的代碼工作的jsfiddle:

http://jsfiddle.net/JxpRC/2/

也許你使用的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(); 
})