jQuery UI AutoComplete 使用说明_Javascript教程-查字典教程网
jQuery UI AutoComplete 使用说明
jQuery UI AutoComplete 使用说明
发布时间:2016-12-30 来源:查字典编辑
摘要:介绍在jQueryUI的最近更新中增加了自动完成控件AutoComplete,这为我们提供了又一个强大的开发工具,这里介绍一下这个控件的使用...

介绍

在 jQuery UI 的最近更新中增加了自动完成控件 AutoComplete,这为我们提供了又一个强大的开发工具,这里介绍一下这个控件的使用方式。

首先,jQuery UI 是基于 jQuery 的,所以,必须在你的页面中首先引用 jQuery 脚本库,然后再引用 jQuery UI 库,对于 jQuery UI 库来说,可以引用整个的库,也可以仅仅引用当前页面用到的库。

jQuery UI 的下载地址:http://jqueryui.com/download

一.基本配置

一般来说,引用独立的脚本可以减小页面的尺寸,我们这里使用独立的脚本。对于 autocomplete 来说,涉及到下面的几个脚本文件。

复制代码 代码如下:

<script src="jquery-1.5.1.min.js" type="text/javascript"></script>

<script src="jquery.ui.core.js"></script>

<script src="jquery.ui.widget.js"></script>

<script src="jquery.ui.position.js"></script>

<script src="jquery.ui.autocomplete.js"></script>

页面中当然要有一个输入框.

复制代码 代码如下:

<div>

<div>

<label for="tags">

Tags:

</label>

<input id="tags" type="text">

</div>

</div>

二. 使用本地数据

对于使用来说,基本的使用非常简单,提示的数据可以来自数组。通过参数对象的 source 属性设置数据源。

复制代码 代码如下:

<script type="text/javascript">

$(function () {

var availableTags = [

"ActionScript",

"AppleScript",

"Asp",

"BASIC",

"C",

"C++",

"Clojure",

"COBOL",

"ColdFusion",

"Erlang",

"Fortran",

"Groovy",

"Haskell",

"Java",

"JavaScript",

"Lisp",

"Perl",

"PHP",

"Python",

"Ruby",

"Scala",

"Scheme"

];

// 这里使用数组作为数据源,availableTags 是数组的名称

$("#tags").autocomplete({

source: availableTags

});

});

</script>

现在,一个自动完成的效果已经可以工作了。

三.使用远程数据源

还可以为 source 属性设置一个表示远程地址的字符串,通过这个远程地址来获取 json 数据。

对于 autocomplete 来说,当提供一个地址的时候,在用户开始在输入框中输入时,将会向这个地址发出一个 GET 请求,请求中的参数名为 term 的参数表示当前输入的内容,

返回的结果必须是 json 格式的数据。

JSON 的详细说明参加这里:http://www.json.org/json-zh.html

复制代码 代码如下:

var url = "serviceHandler.ashx";

$("#auto").autocomplete(

{

source: url

}

);

我们可以通过一个一般处理程序来返回数据。需要特别注意的是,返回的串必须符合 JSON 格式要求,字符串必须使用双引号。

复制代码 代码如下:

public class serviceHandler : IHttpHandler {

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = "text/plain";

HttpResponse response = context.Response;

System.IO.TextWriter writer = response.Output;

// 注意,必须是标准的 JSON 格式串,必须使用双引号

writer.Write("["One", "Two", "Three"]");

}

public bool IsReusable {

get {

return false;

}

}

}

通常在使用远程数据的时候,我们希望在用户输入几个字符之后,再进行提示,这可以通过 minLength 属性来设置,如果是本地数据源,通常为 0, 对于远程数据源,或者大量数据的情况,应当适当增加这个值。这样,我们的脚本就成为了下面的样子了。

复制代码 代码如下:

var url = "serviceHandler.ashx";

$("#auto").autocomplete(

{

source: url,

minLength: 2

}

);

四. 带有缓存的远程数据源

通过为 source 提供一个函数,我们可以为远程数据增加一个本地的缓存。这样就不必每次都到服务器中进行查询。

复制代码 代码如下:

$(function () {

var url = "serviceHandler.ashx";

var cache = {}, lastXhr;

$("#auto").autocomplete({

minLength: 2,

source: function (request, response) {

var term = request.term;

if (term in cache) {

response(cache[term]);

return;

}

lastXhr = $.getJSON(url, request, function (data, status, xhr) {

cache[term] = data;

if (xhr === lastXhr) {

response(data);

}

});

}

});

}

);

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类