1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| /*jslint browser: true, white: true, plusplus: true */
| /*global $, countries */
|
| $(function () {
| 'use strict';
|
| var countriesArray = $.map(countries, function (value, key) { return { value: value, data: key }; });
|
| // Setup jQuery ajax mock:
| $.mockjax({
| url: '*',
| responseTime: 2000,
| response: function (settings) {
| var query = settings.data.query,
| queryLowerCase = query.toLowerCase(),
| re = new RegExp('\\b' + $.Autocomplete.utils.escapeRegExChars(queryLowerCase), 'gi'),
| suggestions = $.grep(countriesArray, function (country) {
| // return country.value.toLowerCase().indexOf(queryLowerCase) === 0;
| return re.test(country.value);
| }),
| response = {
| query: query,
| suggestions: suggestions
| };
|
| this.responseText = JSON.stringify(response);
| }
| });
|
| var nhlTeams = ['Atlanta', 'Boston', 'Buffalo', 'Calgary', 'Carolina', 'Chicago', 'Colorado', 'Columbus', 'Dallas', 'Detroit', 'Edmonton', 'Florida', 'Los Angeles', 'Minnesota', 'Montreal', 'Nashville', ];
| var nbaTeams = ['New Jersey', 'New Rork', 'New York', 'Ottawa', 'Philadelphia', 'Phoenix', 'Pittsburgh', 'Saint Louis', 'San Jose', 'Tampa Bay', 'Toronto Maple', 'Vancouver', 'Washington'];
| var nhl = $.map(nhlTeams, function (team) { return { value: team, data: { category: 'Section A' }}; });
| var nba = $.map(nbaTeams, function (team) { return { value: team, data: { category: 'Section B' } }; });
| var teams = nhl.concat(nba);
|
| // Initialize autocomplete with local lookup:
| $('#city').autocomplete({
| lookup: teams,
| minChars: 1,
| onSelect: function (suggestion) {
| $('#selection').html('You selected: ' + suggestion.value);
| },
| showNoSuggestionNotice: true,
| noSuggestionNotice: 'Sorry, no matching results',
| groupBy: 'category'
| });
|
| $('#country').autocomplete({
| lookup: countriesArray,
| minChars: 1,
| onSelect: function (suggestion) {
| $('#selection-country').html('You selected: ' + suggestion.value);
| },
| showNoSuggestionNotice: true,
| noSuggestionNotice: 'Sorry, no matching results',
| groupBy: 'category'
| });
|
|
| // Initialize autocomplete with custom appendTo:
| $('#autocomplete-custom-append').autocomplete({
| lookup: countriesArray,
| appendTo: '#suggestions-container'
| });
|
| // Initialize autocomplete with custom appendTo:
| $('#autocomplete-dynamic').autocomplete({
| lookup: countriesArray
| });
| });
|
|