11/*jslint browser: true, white: true, plusplus: true */
2- /*global $: true */
2+ /*global $, countries */
33
44$ ( function ( ) {
55 'use strict' ;
66
7- // Load countries then initialize plugin:
8- $ . ajax ( {
9- url : 'content/countries.txt' ,
10- dataType : 'json'
11- } ) . done ( function ( source ) {
7+ var countriesArray = $ . map ( countries , function ( value , key ) { return { value : value , data : key } ; } ) ;
128
13- var countriesArray = $ . map ( source , function ( value , key ) { return { value : value , data : key } ; } ) ,
14- countries = $ . map ( source , function ( value ) { return value ; } ) ;
9+ // Setup jQuery ajax mock:
10+ $ . mockjax ( {
11+ url : '*' ,
12+ responseTime : 2000 ,
13+ response : function ( settings ) {
14+ var query = settings . data . query ,
15+ queryLowerCase = query . toLowerCase ( ) ,
16+ re = new RegExp ( '\\b' + $ . Autocomplete . utils . escapeRegExChars ( queryLowerCase ) , 'gi' ) ,
17+ suggestions = $ . grep ( countriesArray , function ( country ) {
18+ // return country.value.toLowerCase().indexOf(queryLowerCase) === 0;
19+ return re . test ( country . value ) ;
20+ } ) ,
21+ response = {
22+ query : query ,
23+ suggestions : suggestions
24+ } ;
1525
16- // Setup jQuery ajax mock:
17- $ . mockjax ( {
18- url : '*' ,
19- responseTime : 2000 ,
20- response : function ( settings ) {
21- var query = settings . data . query ,
22- queryLowerCase = query . toLowerCase ( ) ,
23- re = new RegExp ( '\\b' + $ . Autocomplete . utils . escapeRegExChars ( queryLowerCase ) , 'gi' ) ,
24- suggestions = $ . grep ( countriesArray , function ( country ) {
25- // return country.value.toLowerCase().indexOf(queryLowerCase) === 0;
26- return re . test ( country . value ) ;
27- } ) ,
28- response = {
29- query : query ,
30- suggestions : suggestions
31- } ;
32-
33- this . responseText = JSON . stringify ( response ) ;
34- }
35- } ) ;
36-
37- // Initialize ajax autocomplete:
38- $ ( '#autocomplete-ajax' ) . autocomplete ( {
39- // serviceUrl: '/autosuggest/service/url',
40- lookup : countriesArray ,
41- lookupFilter : function ( suggestion , originalQuery , queryLowerCase ) {
42- var re = new RegExp ( '\\b' + $ . Autocomplete . utils . escapeRegExChars ( queryLowerCase ) , 'gi' ) ;
43- return re . test ( suggestion . value ) ;
44- } ,
45- onSelect : function ( suggestion ) {
46- $ ( '#selction-ajax' ) . html ( 'You selected: ' + suggestion . value + ', ' + suggestion . data ) ;
47- } ,
48- onHint : function ( hint ) {
49- $ ( '#autocomplete-ajax-x' ) . val ( hint ) ;
50- } ,
51- onInvalidateSelection : function ( ) {
52- $ ( '#selction-ajax' ) . html ( 'You selected: none' ) ;
53- }
54- } ) ;
26+ this . responseText = JSON . stringify ( response ) ;
27+ }
28+ } ) ;
5529
56- // Initialize autocomplete with local lookup:
57- $ ( '#autocomplete' ) . autocomplete ( {
58- lookup : countriesArray ,
59- minChars : 0 ,
60- onSelect : function ( suggestion ) {
61- $ ( '#selection' ) . html ( 'You selected: ' + suggestion . value + ', ' + suggestion . data ) ;
62- }
63- } ) ;
64-
65- // Initialize autocomplete with custom appendTo:
66- $ ( '#autocomplete-custom-append' ) . autocomplete ( {
67- lookup : countriesArray ,
68- appendTo : '#suggestions-container'
69- } ) ;
30+ // Initialize ajax autocomplete:
31+ $ ( '#autocomplete-ajax' ) . autocomplete ( {
32+ // serviceUrl: '/autosuggest/service/url',
33+ lookup : countriesArray ,
34+ lookupFilter : function ( suggestion , originalQuery , queryLowerCase ) {
35+ var re = new RegExp ( '\\b' + $ . Autocomplete . utils . escapeRegExChars ( queryLowerCase ) , 'gi' ) ;
36+ return re . test ( suggestion . value ) ;
37+ } ,
38+ onSelect : function ( suggestion ) {
39+ $ ( '#selction-ajax' ) . html ( 'You selected: ' + suggestion . value + ', ' + suggestion . data ) ;
40+ } ,
41+ onHint : function ( hint ) {
42+ $ ( '#autocomplete-ajax-x' ) . val ( hint ) ;
43+ } ,
44+ onInvalidateSelection : function ( ) {
45+ $ ( '#selction-ajax' ) . html ( 'You selected: none' ) ;
46+ }
47+ } ) ;
7048
71- // Initialize autocomplete with custom appendTo:
72- $ ( '#autocomplete-dynamic' ) . autocomplete ( {
73- lookup : countriesArray
74- } ) ;
75-
49+ // Initialize autocomplete with local lookup:
50+ $ ( '#autocomplete' ) . autocomplete ( {
51+ lookup : countriesArray ,
52+ minChars : 0 ,
53+ onSelect : function ( suggestion ) {
54+ $ ( '#selection' ) . html ( 'You selected: ' + suggestion . value + ', ' + suggestion . data ) ;
55+ }
56+ } ) ;
57+
58+ // Initialize autocomplete with custom appendTo:
59+ $ ( '#autocomplete-custom-append' ) . autocomplete ( {
60+ lookup : countriesArray ,
61+ appendTo : '#suggestions-container'
7662 } ) ;
7763
64+ // Initialize autocomplete with custom appendTo:
65+ $ ( '#autocomplete-dynamic' ) . autocomplete ( {
66+ lookup : countriesArray
67+ } ) ;
7868} ) ;
0 commit comments