dojo Select下拉選單項無法選中的原因與解決
阿新 • • 發佈:2019-02-01
最近遇到一個奇怪問題,Select+JsonRest實現一個下拉選單功能,下拉選單可以正常顯示,但是有一個選項卻無法選中,總是會跳到第一項。除這個選項外其他選項都可以選中。經過觀察,這個選項對應的選項值是整數0,也就是id為0。嘗試把這項的選項值改為任意非0整數,問題不再出現。可能是dojo select外掛不能正確解析選項值為整數0的情況。
繼續試驗,強制把該項選項值改為字串‘0’,其他項不變,也沒有出現該項無法選中情況。於是,對JsonRest返回值全部進行處理,把選項值從整數型轉為字串型,問題解決。
具體實現程式碼:
function(JsonRest, Select, array, Memory, ObjectStore) { var json = new JsonRest({ target: url }); var ary = []; json.query().then( function(items) { // 處理資料 array.forEach(items, function(item) { var tmp = { 'typeId': String(item.typeId), // 此處轉換typeId從int->string 'typeName': item.typeName }; ary.push(tmp); }); var store = new Memory({ data: ary, idProperty: 'typeId' }); var os = new ObjectStore({ objectStore: store }); var select = new Select({ name: "selectDemo", store: os, labelAttr: "typeName", value: value, style: "width: 180px;" }, "target_DOM_Id" ); select.startup(); } ); });