我目前正在使用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>
但是,如果我改为&#34; lookup:&#34;使用外部数据存储区(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 那里有很多选择,如果有人能给我一些指示,可能会有所帮助,那就太棒了。
答案 0 :(得分:0)
该演示未使用外部数据源。
但是我不确定你在问什么:使用外部数据源的全部意义在于它是进行过滤的源 - 它只返回与Ajax get一起发送的令牌匹配的值。否则,您可能还包括原始请求中的所有数据。
答案 1 :(得分:-1)
当您尝试使用您的javascript向其他服务器请求时,由于安全问题,它将被Web浏览器阻止。 (您可以通过关键字Cross domain javascript request
)进行谷歌搜索
如果你使用java,你可以创建一些java代码 - Controller或Servlet(不是javascript)请求其他服务器并将其传递给你的html(就像一个桥)。或者,如果您使用PHP或Python,则可以执行相同的操作。