我有这段代码:
<script type="text/javascript">
var myList = [ "Avellino", "Enna", "Frosinone" ];
$("#myTextBox").autocomplete({
source: myList,
appendTo: "#myOwnMenuProvince"
});
</script>
现在,如果我用e
数字,我只想在列表中看到以 e
开头的单词,而不是e
。因此,在上面的示例中,只有Enna
。
我该怎么做?
答案 0 :(得分:2)
默认情况下,插件使用方法$.ui.autocomplete.filter
。此方法使用数据的标签/值属性上的正则表达式执行grep,并返回已过滤的数据。让我们从中激励自己进行过滤。
要使用您自己的过滤方法,请使用source
选项作为回调。
request
参数是包含一个属性term
的对象。它包含要搜索的文本,基本上是输入字段的值。因此,如果您在输入字段中输入“en”,request.term
将具有该值。
response
参数是回调。您调用它,传递过滤后的数据,以显示数据,基本上显示结果弹出菜单。
基本上,你会过滤你的数据并将过滤后的数组传递给`response'回调。
这是一种方法:
$("#myTextBox").autocomplete({
source: function(request, response) {
// filter your data
var data = $.grep(myList, function(value) {
return value.substring(0, request.term.length).toLowerCase() == request.term.toLowerCase();
});
// pass it to the response callback for display
response(data);
}
});
<强> DEMO 强>