使用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;
},
});
