问题描述
如何部分搜索 JSON 以匹配 JSON 值?
过滤器匹配城市名称的完整值,搜索区分大小写
示例:如果我在文本框中输入 p
,它应该匹配所有带有 p
作为数组的城市值
输出应该是
[{"CM_CITY_CODE":"515134","CM_CITY_NAME":"Puttaparthi(AP)","CM_HUB":"Thirupati","CM_STATE":"Andhra Pradesh","CM_DT_PICKUP_CITY":"0","CM_DROP_CITY":"1","CM_ADDEDBY":"","CM_ADDED_DATE":"","CM_EDITEDBY":"","CM_EDITED_DATE":""},{"CM_CITY_CODE":"517408","CM_CITY_NAME":"Palamaner","CM_HUB":"Vellore","CM_EDITED_DATE":""}]
这是我试过的
(function () {
var cityjson = [{"CM_CITY_CODE":"04262","CM_CITY_NAME":"Gudalur","CM_HUB":"Coimbatore","CM_STATE":"","CM_DT_PICKUP_CITY":"1","CM_ADDEDBY":"VigneshkumarP","CM_ADDED_DATE":"2020-12-17 13:18:23",{"CM_CITY_CODE":"505001","CM_CITY_NAME":"Hyderabad","CM_HUB":"Hyderabad",{"CM_CITY_CODE":"506001","CM_CITY_NAME":"Warangal","CM_STATE":"Telangana",{"CM_CITY_CODE":"515134",{"CM_CITY_CODE":"516001","CM_CITY_NAME":"Kadappa","CM_STATE":"Tamil Nadu","CM_EDITEDBY":"Vivek","CM_EDITED_DATE":"2020-11-03 10:23:26"},{"CM_CITY_CODE":"517001","CM_CITY_NAME":"Chitoor",{"CM_CITY_CODE":"517325","CM_CITY_NAME":"Madanapalli","CM_DROP_CITY":"0","CM_EDITED_DATE":""}]
var getData = function (request,response) {
let x = cityjson.filter(function(item){
return item.CM_CITY_NAME == request.term;
})
if(x.length>0)
{
console.log(x)
response($.map(x,function (item) {
return {
label: x.CM_CITY_NAME,data: item
};
}));
}
else{
alert('else')
}
};
//on select of from dropdown
var selectTo = function (event,ui) {
return false
}
//to address autocomplete
$("#selector").autocomplete({
source: getData,select: selectTo,minLength: 2
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="selector">
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)