Combobox報錯:row[opts.textField].toLowerCase is not a function。
阿新 • • 發佈:2017-11-08
light peer mem div clas erro sea error ()
使用easyui框架加載combobox。
html頁面:
<span class="search_item"> <span class="item_text">賬號ID:</span> <span class="item_obj"> <input class="easyui-textbox" type="text" name="memberId" id="memberId"/> </span> </span> </span>
JS:
/* 加載用戶ID列表 */ $(‘#memberId‘).combobox({ url : ‘${ctxPath}/api/queryAllMemberIdInfo‘, valueField : ‘memberId‘, textField : ‘memberId‘ });
這次調用卻出了問題。數據庫查詢出的數據為memberId為int類型。報錯提示:
× Paused on exception TypeError: row[opts.textField].toLowerCase is not a function.
解決思路:
string類型的數據沒有問題的。這次有問題,說明就是int類型的數據沒有辦法使用toLowerCase方法。那麽我們把int類型轉為String類型之後,再調用此方法。
實現方法為重置一下過濾器:
filter: function(q, row){ var opts = $(this).combobox(‘options‘); row[opts.textField] = row[opts.textField]+""; return row[opts.textField].toLowerCase().indexOf(q.toString().toLowerCase()) >= -1; },
完整代碼:
/* 加載用戶ID列表 */ $(‘#memberId‘).combobox({ url : ‘${ctxPath}/api/**‘, valueField : ‘memberId‘, textField : ‘memberId‘, filter: function(q, row){ var opts = $(this).combobox(‘options‘); row[opts.textField] = row[opts.textField]+""; return row[opts.textField].toLowerCase().indexOf(q.toString().toLowerCase()) >= -1; }, });
Combobox報錯:row[opts.textField].toLowerCase is not a function。