在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:devbridge/jQuery-Autocomplete开源软件地址:https://github.com/devbridge/jQuery-Autocomplete开源编程语言:JavaScript 94.5%开源软件介绍:Devbridge Group accelerates software to market for enterprise clients through dedicated product teams, user experience and software engineering expertise. Ajax Autocomplete for jQueryAjax Autocomplete for jQuery allows you to easily create autocomplete/autosuggest boxes for text input fields. It has no dependencies other than jQuery. The standard jquery.autocomplete.js file is around 13KB when minified. APIThe following sets up autocomplete for input fields where $(selector).autocomplete(options); General settings (local and Ajax)
Event function settings (local and Ajax)
Local only settings
Ajax only settings
Default OptionsDefault options for all instances can be accessed via Instance MethodsAutocomplete instance has following methods:
There are two ways that you can invoke Autocomplete method. One is calling autocomplete on jQuery object and passing method name as string literal. If method has arguments, arguments are passed as consecutive parameters: $('#autocomplete').autocomplete('disable');
$('#autocomplete').autocomplete('setOptions', options); Or you can get Autocomplete instance by calling autcomplete on jQuery object without any parameters and then invoke desired method. $('#autocomplete').autocomplete().disable();
$('#autocomplete').autocomplete().setOptions(options); UsageHtml: <input type="text" name="country" id="autocomplete"/> Ajax lookup: $('#autocomplete').autocomplete({
serviceUrl: '/autocomplete/countries',
onSelect: function (suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
}); Local lookup (no Ajax): var countries = [
{ value: 'Andorra', data: 'AD' },
// ...
{ value: 'Zimbabwe', data: 'ZZ' }
];
$('#autocomplete').autocomplete({
lookup: countries,
onSelect: function (suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
}); Custom lookup function: $('#autocomplete').autocomplete({
lookup: function (query, done) {
// Do Ajax call or lookup locally, when done,
// call the callback and pass your results:
var result = {
suggestions: [
{ "value": "United Arab Emirates", "data": "AE" },
{ "value": "United Kingdom", "data": "UK" },
{ "value": "United States", "data": "US" }
]
};
done(result);
},
onSelect: function (suggestion) {
alert('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
}); StylingGenerated HTML markup for suggestions is displayed below. You may style it any way you'd like. <div class="autocomplete-suggestions">
<div class="autocomplete-group"><strong>NHL</strong></div>
<div class="autocomplete-suggestion autocomplete-selected">...</div>
<div class="autocomplete-suggestion">...</div>
<div class="autocomplete-suggestion">...</div>
</div> Style sample: .autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-selected { background: #F0F0F0; }
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
.autocomplete-group { padding: 2px 5px; }
.autocomplete-group strong { display: block; border-bottom: 1px solid #000; } Response FormatResponse from the server must be JSON formatted following JavaScript object: {
// Query is not required as of version 1.2.5
"query": "Unit",
"suggestions": [
{ "value": "United Arab Emirates", "data": "AE" },
{ "value": "United Kingdom", "data": "UK" },
{ "value": "United States", "data": "US" }
]
} Data can be any value or object. Data object is passed to formatResults function and onSelect callback. Alternatively, if there is no data you can supply just a string array for suggestions: {
"query": "Unit",
"suggestions": ["United Arab Emirates", "United Kingdom", "United States"]
} Non standard query/resultsIf your Ajax service expects the query in a different format, and returns data in a different format than the standard response, you can supply the "paramName" and "transformResult" options: $('#autocomplete').autocomplete({
paramName: 'searchString',
transformResult: function(response) {
return {
suggestions: $.map(response.myData, function(dataItem) {
return { value: dataItem.valueField, data: dataItem.dataField };
})
};
}
}) Grouping ResultsSpecify [
{ value: 'Chicago Blackhawks', data: { category: 'NHL' } },
{ value: 'Chicago Bulls', data: { category: 'NBA' } }
] Results will be formatted into two groups NHL and NBA. Known IssuesIf you use it with jQuery UI library it also has plugin named $('.autocomplete').devbridgeAutocomplete({ ... }); It seems that for mobile Safari click events are only triggered if the CSS of the object being tapped has the cursor set to pointer:
See issue #542 LicenseAjax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license. Copyright notice and permission notice shall be included in all copies or substantial portions of the Software. AuthorsTomas Kirda / @tkirda |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论