详细信息
一个多功能且与Bootstrap兼容的自动完成 jQuery 插件,支持静态和动态数据源(json 格式的响应)。
如何使用它:
1. 在 jQuery 之后加载自动完成插件的缩小版本。
<!-- Required -->
<link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" />
<script src="/path/to/cdn/jquery.min.js"></script>
<!-- <a href="https://www.jqueryscript.net/tags.php?/autocomplete/">Autocomplete</a> plugin -->
<script src="autocomplete.min.js"></script>
2. 将自动完成功能附加到输入字段并确定数据源(可以是数组或对象),如下所示:
<input class="autocomplete-input" />
$('.autocomplete-input').autocomplete({
// source: ['Value 1', 'Value 2', 'Value 3']
source: [
{
value: 'v1',
label: 'Value 1',
extradata: 'jQuery1' // optional
},
{
value: 'v2',
label: 'Value 2',
extradata: 'jQuery2'
},
{
value: 'v3',
label: 'Value 3',
extradata: 'jQuery3'
}
// ...
]
})
3. 从外部数据源加载自动完成项目。
$('.autocomplete-input').autocomplete({
source: '/path/to/data/',
// or
source: function (request, response) {
var ajaxOpt = {url: 'data.php', data:{term: request.term}};
$.ajax(ajaxOpt).done(function (data) {
response(data);
});
}
})
4. 自定义自动完成列表的下拉模板。
$('.autocomplete-input').autocomplete({
render<a href="https://www.jqueryscript.net/menu/">Menu</a>: function (menu, item) {
return $('<a href="javascript: void(0)" />')
.addClass('dropdown-item text-wrap')
.data('data', item)
.html(item.label || item.value)
.appendTo(menu)
;
},
})
5.自定义匹配器功能。设置为 false 将禁用默认匹配器。
$('.autocomplete-input').autocomplete({
matcher: function (rowData, search, cb) {
var text = (rowData.label || rowData.text || rowData.value).toUpperCase();
if (text.indexOf(search.toUpperCase()) > -1) {
return cb(true);
}
cb(false);
},
})
6. 更多插件选项。
$('.autocomplete-input').autocomplete({
// minimum number of characters to trigger the autocomplete list
minLength: 1,
// time to wait before displaying the autocomplete list
delay: 300,
// CSS z-index property
zIndex: 100,
// auto set focus on the first matched item
autoFocus: false,
// ignore keys
ignoreKeys: Default: '|9|16|17|18|19|33|34|35|36|37|39|45|144|145|',
})
7. API 方法。
// Get option
$('.autocomplete-input').autocomplete('option', 'matcher');
// Set option
$('.autocomplete-input').autocomplete('option', 'matcher', false);
// Run function
$('.autocomplete-input').autocomplete('show');
$('.autocomplete-input').autocomplete('search', 'searchfor');
8. 事件。
$('.autocomplete-input').autocomplete({
// ...
})
.on('autocomplete.preselect', function (event, data, jItem) {
// do somthing
})
.on('autocomplete.select', function (event, data, jItem) {
// do somthing
console.info(data.value)
console.info(data.label)
console.info(data.extradata)
});
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。