1. 程式人生 > >Combobox報錯:row[opts.textField].toLowerCase is not a function。

Combobox報錯:row[opts.textField].toLowerCase is not a function。

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。