05-autocomplete (options)方法
9.3.1 autocomplete (options) 方法
autocomplete (options) 方法要求 <input> 元素必须作为一个显示在建议列表上方的输入框类型来被管理。 options 参数则指定了建议列表在用户在输入框中输入时的相关 行为。
自动补全的运作流程是这样的:用输入框中的字符和指定的数据源(即 options. source )进行匹配。只要和数据源中的任意字符匹配,就算匹配成功,而不仅仅是从开头开始匹配。因此,如果用户要查找匹配字母“a”,则其补全结果并不需要以a开头,也可以是中间含有a。
1.自动补全的管理
表9-1详细列出了可用于管理自动补全的选项。
| 选项 | 功能 |
| :----- | :----- | :----- | :----- |
| options.disabled | 当设置为 true 时,禁用自动补全机制。用户仍然可以在输入框中输入,但不会再有列表显示。可以使用 autocomplete ("enable") 开启自动补全机制 |
| options.source | 指定用于建议列表的数据源。数据可以是本地的(程序已知的),也可以是远程的(从服务器端获取的) |
| options.minLength | 触发建议列表显示所需的最少输入字符数。默认值为1 |
| options.delay | 对已输入的字符进行匹配前的延时设置(毫秒)。默认延时为300 ms |
2.管理建议列表的事件
表9-2中描述的事件要么是在输入框中输入时触发,要么是在列表中选择项目时,或是调用了任意一个管理自动补全的方法时触发。在这些方法中,可以使用 autocomplete ("widget") 来访问包含列表的 <ul> 元素。当你需要从整体上操作列表,进而访问每一个 <li> 列表项时,此方法尤其有用。
| 选项 | 功能 |
| :----- | :----- | :----- | :----- |
| options.open | open (event) 方法会在建议列表显示时调用 |
| options.close | close (event) 方法会在建议列表被关闭时调用 |
| options.search | search (event) 方法会在显示建议列表前的搜索匹配工作完成后调用。如果此方法返回 false ,则列表不会显示 |
| options.focus | focus (event, ui) 方法在列表项获得焦点时,或者是鼠标移至列表项或者用方向键选择列表项时调用。 ui.item 是一个 {label, value} 对象,其中 label 对应着建议列表中显示的文本,而 value 则是所选项对应的将要插入输入框中的值。( label 和 value 常常有着相同的值,但分离这两个变量可以提供更多的灵活性。)如果该方法返回 false ,输入框中的内容不变 |
| options.select | select (event, ui) 方法会在某个列表项被选择时调用。如果该方法返回 false ,输入框中的内容不变。 ui.item 是一个 {label, value} 对象,其中 label 对应着建议列表中显示的文本,而 value 则是所选项对应的将要插入输入框中的值。( label 和 value 常常有着相同的值,但分离这两个变量可以提供更多的灵活性。)如果该方法返回 false ,输入框中的内容不变 |
| options.change | change (event) 会在输入框失去焦点(当用户单击了输入框外的任意地方)且内容发生变化时调用。此事件常于用户在列表中选择了一个新的项目、将新的文本插入输入框并关闭列表后发生 |