我试图尝试使用jQuery Autocomplete为输入框使用不同的数据源选项。
我有id #polysearch的输入框。我想自动完成焦点上的输入框(只是放光标)和源选项' data1'并且我想使用源选项' data2'自动填充输入框。键入2个字符时。 请帮忙!
谢谢!
答案 0 :(得分:5)
通过使用source
选项进行自动填充,您可以根据request.term
的长度(用户在框中输入的内容)自定义要使用的数组。
当输入被聚焦时,您还需要手动调用自动完成的search
方法,以便在焦点上打开它。
以下是我必须完成这项工作的代码。 See it in action
$(function() {
var data1 = 'abcdefghijklmnopqrstuvwxyz'.split('');
var data2 = 'cat dog fish shark unicorn sasquatch flamingo dingo snake mouse rat'.split(/\s+/g);
$('#in').autocomplete({
minLength: 0, // so it shows straight away without typing anything
source: function (request, response) {
if ((request.term || '').length <= 1)
response(filter(data1, request.term));
else
response(filter(data2, request.term));
}
}).on('focus', function () {
$(this).autocomplete('search', '');
});
function filter(array, searchTerm) {
var matchingItems = [];
for (var i = 0; i < array.length; i++) {
if (array[i].indexOf(searchTerm.toLocaleLowerCase()) >= 0)
matchingItems.push(array[i]);
}
if (matchingItems.length === 0)
return ['No Matches'];
return matchingItems;
}
});