2013-03-12 69 views
0

您好我有一個選擇(3個選項)和一個組合框每次更改選擇更改新選項。但是,每次選擇更改時,我都無法更新或刷新組合框。它只在頁面刷新時才起作用。dojo 1.8 - 無法每次更改時更新組合框

meter_Select.on('change', function() 
{ 
console.debug("selected -> " + meter_Select.value); 
switch(meter_Select.value) 
{ 
case 'testdata1970_05': var memoStore2 = new Memory({data:response2}); 
break; 
case 'testdata1970_10': var memoStore2 = new Memory({data:response3}); 
break; 
case 'testdata2060_03': var memoStore2 = new Memory({data:response1}); 
} 

var combx = new ComboBox({ 
store: memoStore2, 
    searchAttr: "mfg_code" 
    }, "node_cardSelect"); 
    combx.startup(); 

如需進一步,你可以在結帳的jsfiddle - http://jsfiddle.net/clementyap/9tNhN/6/ 請指教。 會感謝你的幫助,並在此先感謝 克萊門特

回答

4

如果你看看你的瀏覽器的JavaScript控制檯,你會看到這樣的事情:

Uncaught Error: Tried to register widget with id==node_cardSelect but that id is already registered

那是因爲你想每一個重新組合框時間與相同的ID。如果ComboBox已經存在,您可以更新商店並再次調用啓動,或者將其銷燬並創建一個新的啓動。

 var combx = registry.byId("node_cardSelect"); 
     if(combx) { 
      combx.store = memoStore2; 
     } 
     else { 
      combx = new ComboBox({ 
       store: memoStore2, 
       searchAttr: "mfg_code" 
      }, "node_cardSelect"); 
     } 

     combx.startup(); 

這裏有一個更新的jsfiddle與上面的修復:http://jsfiddle.net/nhnDr/1/

+0

謝謝你這麼多 – user1739825 2013-03-13 01:07:39

+0

很奇怪。在jsfiddle中,選擇其中一個選項後,combx無法顯示值 – user1739825 2013-03-13 03:47:19

+0

不確定你的意思,它似乎對我有用(Chrome) – 2013-03-13 19:47:54