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