Combobox报错:row[opts.textField].toLowerCase is not a function。


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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM