JQuery UI之Autocomplete
Posted zhangjinru123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery UI之Autocomplete相关的知识,希望对你有一定的参考价值。
1、Autocomplete的主要属性:
source:即为指定智能提示下拉框中的数据来源,支持三种类型。
Array,主要用于本地化数据提供,支持两种格式:字符串数组 [ "Choice1", "Choice2" ]及标签和值属性的Json格式数组 [ { label: "Choice1", value: "value1" }, ... ]
String,用于ajax请求的远程地址链接,返回Array或Json格式字符串。
Function,回调函数,最具有灵活性的一种方式,可用于返回任何数据源方式来实现自动完成,其中包含两个参数request,response通过request.term 来获取用户输入的值,通过response(argument)来对获取的数据源进行显示。
autoFocus:当智能提示框出现时,是否自动选中第一项,默认为false,即不选中。
delay:在按键后执行搜索的延时,默认为300ms。
disabled:是否禁用自动完成功能,默认为false。
minLength:触发自动完成功能需要输入的最小字符数量。
2、Autocomplete还提供了一些有用的方法:
close():关闭智能提示选择框。
destroy():销毁智能提示选择框,将其所产生的元素完全删除,使其恢复至初始状态。
disable():禁用自动完成功能。
enable():开启自动完成功能。
3、主要事件包括:
change(event, ui):当值改变时发生,ui.item为选中的项。
close(event, ui):当智能提示框关闭时发生。
create(event, ui):当智能提示框创建时发生,可以在此事件中,对外观进行一些控制。
focus(event, ui):当智能提示列表任意一项获得焦点时发生,ui.item为获得焦点的项。
open(event, ui):当智能提示框打开或更新时发生。
response(event,ui):在搜索完成后智能提示框显示前发生,可以在此事件中对显示项进行处理。
search(event, ui): 在开始请求之前发生,可以在此事件中返回false来取消请求。
select(event, ui):当智能提示框中任意一项被选中时发生,ui.item为选中的项。
4、Autocomplete程序入门
首先引入相关的css和js文件,html代码
<link href="../css/jquery-ui.css" rel="stylesheet" /> <script type="text/javascript" src="../js/jquery-1.9.1.min.js" ></script> <script type="text/javascript" src="../js/jquery-ui.js" ></script> <label for="language">搜索:</lable> <input id="language" name="language" type="text">
这里采用的是本地数据,js代码如下:
$("#language").autocomplete({ source: [ \'Chinese\',\'English\',\'Spanish\',\'Russian\',\'French\',\'Japanese\',\'Korean\',\'German\'] });
当输入c时的效果如下:
5、source使用标签和值属性演示
HTML不变,js代码如下:
$("#language").autocomplete({ // 静态的数据源,根据label属性进行显示或模糊匹配,当给输入框设置value属性值 source: [ { label: "Chinese", value: 1 }, { label: "English", value: 2 }, { label: "Spanish", value: 3 }, { label: "Russian", value: 4 }, { label: "French", value: 5 }, { label: "Japanese", value: 6 }, ] });
在输入框输入c时,此时输入框对应的值是value的值
注意:如果数据太多可以添加滚动效果:
<style> .ui-autocomplete { max-height: 200px; overflow-y: auto; /* 防止水平滚动条 */ overflow-x: hidden; } </style>
以上是关于JQuery UI之Autocomplete的主要内容,如果未能解决你的问题,请参考以下文章
JQuery UI之Autocomplete多值输入远程缓存与组合框
如何制作 jquery ui-autocomplete 功能?
未捕获的 TypeError: $(...).autocomplete 不是 JQuery-UI 中的函数
jQuery ui autocomplete 与easyUI冲突解决办法(重命名ui的autocomplete 和menu部分)