使用JQuery UI自动完成从JSON搜索数据不起作用
Searching data from JSON using JQuery UI autocomplete not working
如何使用JQuery UI自动完成提取的json数据?它对我不起作用。
我用这个例子http://jqueryui.com/autocomplete/,但我从json中获取的不是硬编码数据。
我的json数据来自一个url localhost/myproject/output/names
。
html
<input type="text" class="form-control" name="search" placeholder="Search" id="search">
js
<script>
$(function() {
$( "#search" ).autocomplete({
source: "localhost/myproject/output/names"
});
});
</script>
json数据
[{"fullname":"John Smith"},{"fullname":"Juan dela Cruz"}]
编辑
正如@artm所评论的那样,我已经设法解决了json数据的问题。现在是[{John Smith},{Juan dela Cruz}]
但另一个问题是,当我键入字母o
时,尽管只有John Smith
包含o
,但建议同时使用两者。我该怎么解决这个问题?
["John Smith", "Juan dela Cruz"]
或者具有label
和value
属性的对象数组,例如:
[ { label: "name", value: "John Smith" }, { label: "name", value: "Juan dela Cruz" }... ]
如果您的数据源不是以这种格式直接发送数据,您可以将函数传递给source
选项,在该选项中,您可以从数据源检索数据并相应地进行修改。
函数接收两个参数:
- 具有单个
term
属性的请求对象,其值为用户输入 - 一个回调函数,您应该以正确的格式将数据传递给它
试试
$(function() {
$( "#search" ).autocomplete({
source: function(request, response){
$.ajax("localhost/myproject/output/names",{ // retrieve the data
//ajax settings
success: function(data){
var matches = $.map(data,function(item){ // create an array of strings
// find the matching items manually in insert to the array
if(item.fullname.indexOf(request.term)>=0)
return item.fullname;
});
response(matches); // pass the results to response callback
}
});
}
});
});
附带说明:代码没有经过测试,只是为了给出一个大致的概述。
相关文章:
- 如何使用jQuery按键搜索和获取json行数据
- JSON和jQuery实时搜索
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 在禁用ng的情况下搜索JSON对象(AngularJS)
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- 搜索包含值的json对象键,然后取消设置
- (临时)在Web应用程序中存储JSON搜索结果
- 代码点火器:搜索自动完成 JSON 解析意外字符
- 使用节点在 JSON 数组中搜索项目(最好不迭代)
- 将图像添加到 json 搜索栏
- 在搜索应用程序中用JSON数据交换JavaScript数组
- JSON - 搜索具有变量名称(未知)的键
- 使用JQuery UI自动完成从JSON搜索数据不起作用
- 如何在键入时应用ajax/json搜索过滤器
- 用localStorage缓存每个JSON搜索查询
- 使用Javascript和JSON搜索,使用表单参数
- 通过JSON搜索多个关键字(包含regex)
- 在Angular中编辑JSON搜索结果
- 选择2 4.0 JSON搜索不起作用
- 将URL固定到即时JSON搜索脚本的SERP