jQuery 入门教程(24): jQuery UI Autocomplete示例(二)
2013-03-22 07:10
579 查看
如果一个输入框可以接受多个输入项,比如选择你喜欢的语言,以逗号隔开,这是也可以使用AutoComplete为每个输入项提供输入提示。不过此时除了设置数据源外,还需要添加一些事件处理。
1 | <!doctype html> |
2 | < html lang = "en" > |
3 | < head > |
4 | < meta charset = "utf-8" /> |
5 | < title >jQuery UI Demos</ title > |
6 | < link rel = "stylesheet" href = "themes/trontastic/jquery-ui.css" /> |
7 | < script src = "scripts/jquery-1.9.1.js" ></ script > |
8 | < script src = "scripts/jquery-ui-1.10.1.custom.js" ></ script > |
9 |
10 | < script > |
11 | $(function () { |
12 | var availableTags = [ |
13 | "ActionScript", |
14 | "AppleScript", |
15 | "Asp", |
16 | "BASIC", |
17 | "C", |
18 | "C++", |
19 | "Clojure", |
20 | "COBOL", |
21 | "ColdFusion", |
22 | "Erlang", |
23 | "Fortran", |
24 | "Groovy", |
25 | "Haskell", |
26 | "Java", |
27 | "JavaScript", |
28 | "Lisp", |
29 | "Perl", |
30 | "PHP", |
31 | "Python", |
32 | "Ruby", |
33 | "Scala", |
34 | "Scheme" |
35 | ]; |
36 | function split(val) { |
37 | return val.split(/,\s*/); |
38 | } |
39 | function extractLast(term) { |
40 | return split(term).pop(); |
41 | } |
42 |
43 | $("#tags") |
44 | // don't navigate away from the field on tab |
45 | //when selecting an item |
46 | .bind("keydown", function (event) { |
47 | if (event.keyCode === $.ui.keyCode.TAB && |
48 | $(this).data("ui-autocomplete").menu.active) { |
49 | event.preventDefault(); |
50 | } |
51 | }) |
52 | .autocomplete({ |
53 | minLength: 0, |
54 | source: function (request, response) { |
55 | // delegate back to autocomplete, |
56 | // but extract the last term |
57 | response($.ui.autocomplete.filter( |
58 | availableTags, extractLast(request.term))); |
59 | }, |
60 | focus: function () { |
61 | // prevent value inserted on focus |
62 | return false; |
63 | }, |
64 | select: function (event, ui) { |
65 | var terms = split(this.value); |
66 | // remove the current input |
67 | terms.pop(); |
68 | // add the selected item |
69 | terms.push(ui.item.value); |
70 | // add placeholder to get the |
71 | //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 | < div class = "ui-widget" > |
82 | < label for = "tags" >Tag programming languages: </ label > |
83 | < input id = "tags" size = "50" /> |
84 | </ div > |
85 | </ body > |
86 | </ html > |
相关文章推荐
- jQuery 入门教程(24): jQuery UI Autocomplete示例(二)
- jQuery 入门教程(25): jQuery UI Autocomplete示例(三)
- jQuery 入门教程(23): jQuery UI Autocomplete示例(一)
- jQuery 入门教程(25): jQuery UI Autocomplete示例(三)
- jQueryUI Autocomplete插件使用入门教程(最新版)---------转载
- jQuery 入门教程(30): jQuery UI Datepicker 示例(三)
- jQuery 入门教程(43): jQuery UI Tooltip 示例
- jQuery 入门教程(31): jQuery UI Datepicker 示例(四)
- jQuery 入门教程(28): jQuery UI Datepicker 示例(一)
- jQuery 入门教程(30): jQuery UI Datepicker 示例(三)
- jQuery 入门教程(34): jQuery UI Dialog 示例(二)
- jQuery 入门教程(32): jQuery UI Datepicker 示例(五)
- jquery ui autocomplete自动提示控件使用示例
- jQuery UI Autocomplete示例(一)
- jQuery 入门教程(33): jQuery UI Dialog 示例(一)
- jQuery 入门教程(40): jQuery UI Spiner 示例
- jQuery 入门教程(34): jQuery UI Dialog 示例(二)
- jQuery 入门教程(34): jQuery UI Dialog 示例(二)
- jquery ui autocomplete使用示例
- jQuery 入门教程(35): jQuery UI Dialog 示例(三)