jQuery自动完成如何动态过滤响应
How does jQuery Autocomplete dynamically filter responses
我目前使用http://www.devbridge.com/sourcery/components/jquery-autocomplete/#jquery-autocomplete来自动完成输入。
我的问题是:上面链接的演示是如何自动过滤结果的?
如果我使用本地数据存储,它会为我过滤结果。
<script>
var suggestions = [ "Afghan",
"African",
"Senegalese",
"American",
"Arabian",
"Arab Pizza",
"Argentine",
"Armenian",
"Asian Fusion",
"Asturian",
"Australian",
"Austrian"
]
$('#categories').autocomplete({
// serviceUrl: '/autocomplete/categories',
lookup: suggestions,
delimiter: ',',
maxHeight: 200,
minChars: 2
});
</script>
但是,如果我将"lookup:"替换为外部数据存储(serviceUrl),则不再过滤结果。
下面是我的外部调用版本的代码:
class AjaxHandler(webapp2.RequestHandler):
def __init__(self, request, response):
self.initialize(request, response)
self.categories = []
with open("static/categories.data") as categories_file:
for entry in categories_file:
self.categories.append(str(entry))
print entry
def get(self):
suggestions = {"suggestions": self.categories}
self.response.write(json.dumps(suggestions))
self.response.headers.add_header("Content-Type", "application/json; charset-UTF-8")
在这个版本中,它仍然对所有条目进行编辑距离,但过滤不再工作。
下面是它们的API: https://github.com/devbridge/jQuery-Autocomplete这里有很多选项,如果有人能给我指点一下哪一个可能有帮助,那就太好了。这个演示没有使用外部数据源。
但是我不确定您在问什么:使用外部数据源的全部意义在于它是进行过滤的源—它只返回与Ajax get发送的令牌匹配的值。否则,您不妨在原始请求中包含所有数据。
当你试图用javascript请求其他服务器时,通常会被Web浏览器阻止,因为安全问题。(可通过关键词Cross domain javascript request
搜索)
如果你使用java,你可以创建一些java代码-控制器或Servlet(不是javascript)请求到其他服务器,并将其传递给你的html(就像桥梁)。如果使用PHP或Python,也可以做同样的事情。
相关文章:
- 如何在vis.js中动态过滤链接
- 基于动态复选框过滤数据 角度 JS中的类别
- 如何使用 PHP 动态过滤类别
- 基于动态条件的高效阵列过滤
- 使用 AJAX 响应和 jQuery 动态生成、搜索和过滤表
- 使用 JavaScript 动态过滤 HTML 表的行
- 如何动态过滤jQuery移动选择表单
- Django动态过滤表单
- 实时搜索(输入时动态过滤结果)- Bootstrap, jQuery
- 重构ValueConverter以动态过滤
- 绑定html表单与XSL动态过滤xml文件
- 斑马条纹在动态过滤和使用jquery时失去位置:even
- 在可折叠jquery-mobile中添加可动态过滤的控件
- jQuery自动完成如何动态过滤响应
- JS Array.filter与动态过滤标准
- 在html表中动态过滤搜索结果
- 如何纯粹使用 AJAX 实现动态过滤并仍然保留可用的历史记录
- 动态过滤可见Div元素
- 为特定文件类型动态过滤添加的文件上传字段
- ExtJS动态过滤ComboBox