Mercurial > hg > MPIWGThesaurus
comparison jquery-ui/development-bundle/demos/autocomplete/multiple.html @ 0:b2e4605f20b2
beta version
author | dwinter |
---|---|
date | Thu, 30 Jun 2011 09:07:49 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:b2e4605f20b2 |
---|---|
1 <!DOCTYPE html> | |
2 <html lang="en"> | |
3 <head> | |
4 <meta charset="utf-8"> | |
5 <title>jQuery UI Autocomplete - Multiple values</title> | |
6 <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css"> | |
7 <script src="../../jquery-1.5.1.js"></script> | |
8 <script src="../../ui/jquery.ui.core.js"></script> | |
9 <script src="../../ui/jquery.ui.widget.js"></script> | |
10 <script src="../../ui/jquery.ui.position.js"></script> | |
11 <script src="../../ui/jquery.ui.autocomplete.js"></script> | |
12 <link rel="stylesheet" href="../demos.css"> | |
13 <script> | |
14 $(function() { | |
15 var availableTags = [ | |
16 "ActionScript", | |
17 "AppleScript", | |
18 "Asp", | |
19 "BASIC", | |
20 "C", | |
21 "C++", | |
22 "Clojure", | |
23 "COBOL", | |
24 "ColdFusion", | |
25 "Erlang", | |
26 "Fortran", | |
27 "Groovy", | |
28 "Haskell", | |
29 "Java", | |
30 "JavaScript", | |
31 "Lisp", | |
32 "Perl", | |
33 "PHP", | |
34 "Python", | |
35 "Ruby", | |
36 "Scala", | |
37 "Scheme" | |
38 ]; | |
39 function split( val ) { | |
40 return val.split( /,\s*/ ); | |
41 } | |
42 function extractLast( term ) { | |
43 return split( term ).pop(); | |
44 } | |
45 | |
46 $( "#tags" ) | |
47 // don't navigate away from the field on tab when selecting an item | |
48 .bind( "keydown", function( event ) { | |
49 if ( event.keyCode === $.ui.keyCode.TAB && | |
50 $( this ).data( "autocomplete" ).menu.active ) { | |
51 event.preventDefault(); | |
52 } | |
53 }) | |
54 .autocomplete({ | |
55 minLength: 0, | |
56 source: function( request, response ) { | |
57 // delegate back to autocomplete, but extract the last term | |
58 response( $.ui.autocomplete.filter( | |
59 availableTags, extractLast( request.term ) ) ); | |
60 }, | |
61 focus: function() { | |
62 // prevent value inserted on focus | |
63 return false; | |
64 }, | |
65 select: function( event, ui ) { | |
66 var terms = split( this.value ); | |
67 // remove the current input | |
68 terms.pop(); | |
69 // add the selected item | |
70 terms.push( ui.item.value ); | |
71 // add placeholder to get the comma-and-space at the end | |
72 terms.push( "" ); | |
73 this.value = terms.join( ", " ); | |
74 return false; | |
75 } | |
76 }); | |
77 }); | |
78 </script> | |
79 </head> | |
80 <body> | |
81 | |
82 <div class="demo"> | |
83 | |
84 <div class="ui-widget"> | |
85 <label for="tags">Tag programming languages: </label> | |
86 <input id="tags" size="50" /> | |
87 </div> | |
88 | |
89 </div><!-- End demo --> | |
90 | |
91 | |
92 | |
93 <div class="demo-description"> | |
94 <p>Usage: Type something, eg. "j" to see suggestions for tagging with programming languages. Select a value, then continue typing to add more.</p> | |
95 <p>This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.</p> | |
96 </div><!-- End demo-description --> | |
97 | |
98 </body> | |
99 </html> |