jQuery UI AutoComplete 使用說明
更新時(shí)間:2011年06月20日 00:10:21 作者:
在 jQuery UI 的最近更新中增加了自動(dòng)完成控件 AutoComplete,這為我們提供了又一個(gè)強(qiáng)大的開發(fā)工具,這里介紹一下這個(gè)控件的使用方式。
介紹
在 jQuery UI 的最近更新中增加了自動(dòng)完成控件 AutoComplete,這為我們提供了又一個(gè)強(qiáng)大的開發(fā)工具,這里介紹一下這個(gè)控件的使用方式。
首先,jQuery UI 是基于 jQuery 的,所以,必須在你的頁面中首先引用 jQuery 腳本庫,然后再引用 jQuery UI 庫,對(duì)于 jQuery UI 庫來說,可以引用整個(gè)的庫,也可以僅僅引用當(dāng)前頁面用到的庫。
jQuery UI 的下載地址:http://jqueryui.com/download
一.基本配置
一般來說,引用獨(dú)立的腳本可以減小頁面的尺寸,我們這里使用獨(dú)立的腳本。對(duì)于 autocomplete 來說,涉及到下面的幾個(gè)腳本文件。
<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>
頁面中當(dāng)然要有一個(gè)輸入框.
<div class="demo">
<div class="ui-widget">
<label for="tags">
Tags:
</label>
<input id="tags" type="text">
</div>
</div>
二. 使用本地?cái)?shù)據(jù)
對(duì)于使用來說,基本的使用非常簡(jiǎn)單,提示的數(shù)據(jù)可以來自數(shù)組。通過參數(shù)對(duì)象的 source 屬性設(shè)置數(shù)據(jù)源。
<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"
];
// 這里使用數(shù)組作為數(shù)據(jù)源,availableTags 是數(shù)組的名稱
$("#tags").autocomplete({
source: availableTags
});
});
</script>
現(xiàn)在,一個(gè)自動(dòng)完成的效果已經(jīng)可以工作了。
三.使用遠(yuǎn)程數(shù)據(jù)源
還可以為 source 屬性設(shè)置一個(gè)表示遠(yuǎn)程地址的字符串,通過這個(gè)遠(yuǎn)程地址來獲取 json 數(shù)據(jù)。
對(duì)于 autocomplete 來說,當(dāng)提供一個(gè)地址的時(shí)候,在用戶開始在輸入框中輸入時(shí),將會(huì)向這個(gè)地址發(fā)出一個(gè) GET 請(qǐng)求,請(qǐng)求中的參數(shù)名為 term 的參數(shù)表示當(dāng)前輸入的內(nèi)容,
返回的結(jié)果必須是 json 格式的數(shù)據(jù)。
JSON 的詳細(xì)說明參加這里:http://www.json.org/json-zh.html
var url = "serviceHandler.ashx";
$("#auto").autocomplete(
{
source: url
}
);
我們可以通過一個(gè)一般處理程序來返回?cái)?shù)據(jù)。需要特別注意的是,返回的串必須符合 JSON 格式要求,字符串必須使用雙引號(hào)。
public class serviceHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
HttpResponse response = context.Response;
System.IO.TextWriter writer = response.Output;
// 注意,必須是標(biāo)準(zhǔn)的 JSON 格式串,必須使用雙引號(hào)
writer.Write("[\"One\", \"Two\", \"Three\"]");
}
public bool IsReusable {
get {
return false;
}
}
}
通常在使用遠(yuǎn)程數(shù)據(jù)的時(shí)候,我們希望在用戶輸入幾個(gè)字符之后,再進(jìn)行提示,這可以通過 minLength 屬性來設(shè)置,如果是本地?cái)?shù)據(jù)源,通常為 0, 對(duì)于遠(yuǎn)程數(shù)據(jù)源,或者大量數(shù)據(jù)的情況,應(yīng)當(dāng)適當(dāng)增加這個(gè)值。這樣,我們的腳本就成為了下面的樣子了。
var url = "serviceHandler.ashx";
$("#auto").autocomplete(
{
source: url,
minLength: 2
}
);
四. 帶有緩存的遠(yuǎn)程數(shù)據(jù)源
通過為 source 提供一個(gè)函數(shù),我們可以為遠(yuǎn)程數(shù)據(jù)增加一個(gè)本地的緩存。這樣就不必每次都到服務(wù)器中進(jìn)行查詢。
$(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);
}
});
}
});
}
);
在 jQuery UI 的最近更新中增加了自動(dòng)完成控件 AutoComplete,這為我們提供了又一個(gè)強(qiáng)大的開發(fā)工具,這里介紹一下這個(gè)控件的使用方式。
首先,jQuery UI 是基于 jQuery 的,所以,必須在你的頁面中首先引用 jQuery 腳本庫,然后再引用 jQuery UI 庫,對(duì)于 jQuery UI 庫來說,可以引用整個(gè)的庫,也可以僅僅引用當(dāng)前頁面用到的庫。
jQuery UI 的下載地址:http://jqueryui.com/download
一.基本配置
一般來說,引用獨(dú)立的腳本可以減小頁面的尺寸,我們這里使用獨(dú)立的腳本。對(duì)于 autocomplete 來說,涉及到下面的幾個(gè)腳本文件。
復(fù)制代碼 代碼如下:
<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>
頁面中當(dāng)然要有一個(gè)輸入框.
復(fù)制代碼 代碼如下:
<div class="demo">
<div class="ui-widget">
<label for="tags">
Tags:
</label>
<input id="tags" type="text">
</div>
</div>
二. 使用本地?cái)?shù)據(jù)
對(duì)于使用來說,基本的使用非常簡(jiǎn)單,提示的數(shù)據(jù)可以來自數(shù)組。通過參數(shù)對(duì)象的 source 屬性設(shè)置數(shù)據(jù)源。
復(fù)制代碼 代碼如下:
<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"
];
// 這里使用數(shù)組作為數(shù)據(jù)源,availableTags 是數(shù)組的名稱
$("#tags").autocomplete({
source: availableTags
});
});
</script>
現(xiàn)在,一個(gè)自動(dòng)完成的效果已經(jīng)可以工作了。
三.使用遠(yuǎn)程數(shù)據(jù)源
還可以為 source 屬性設(shè)置一個(gè)表示遠(yuǎn)程地址的字符串,通過這個(gè)遠(yuǎn)程地址來獲取 json 數(shù)據(jù)。
對(duì)于 autocomplete 來說,當(dāng)提供一個(gè)地址的時(shí)候,在用戶開始在輸入框中輸入時(shí),將會(huì)向這個(gè)地址發(fā)出一個(gè) GET 請(qǐng)求,請(qǐng)求中的參數(shù)名為 term 的參數(shù)表示當(dāng)前輸入的內(nèi)容,
返回的結(jié)果必須是 json 格式的數(shù)據(jù)。
JSON 的詳細(xì)說明參加這里:http://www.json.org/json-zh.html
復(fù)制代碼 代碼如下:
var url = "serviceHandler.ashx";
$("#auto").autocomplete(
{
source: url
}
);
我們可以通過一個(gè)一般處理程序來返回?cái)?shù)據(jù)。需要特別注意的是,返回的串必須符合 JSON 格式要求,字符串必須使用雙引號(hào)。
復(fù)制代碼 代碼如下:
public class serviceHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
HttpResponse response = context.Response;
System.IO.TextWriter writer = response.Output;
// 注意,必須是標(biāo)準(zhǔn)的 JSON 格式串,必須使用雙引號(hào)
writer.Write("[\"One\", \"Two\", \"Three\"]");
}
public bool IsReusable {
get {
return false;
}
}
}
通常在使用遠(yuǎn)程數(shù)據(jù)的時(shí)候,我們希望在用戶輸入幾個(gè)字符之后,再進(jìn)行提示,這可以通過 minLength 屬性來設(shè)置,如果是本地?cái)?shù)據(jù)源,通常為 0, 對(duì)于遠(yuǎn)程數(shù)據(jù)源,或者大量數(shù)據(jù)的情況,應(yīng)當(dāng)適當(dāng)增加這個(gè)值。這樣,我們的腳本就成為了下面的樣子了。
復(fù)制代碼 代碼如下:
var url = "serviceHandler.ashx";
$("#auto").autocomplete(
{
source: url,
minLength: 2
}
);
四. 帶有緩存的遠(yuǎn)程數(shù)據(jù)源
通過為 source 提供一個(gè)函數(shù),我們可以為遠(yuǎn)程數(shù)據(jù)增加一個(gè)本地的緩存。這樣就不必每次都到服務(wù)器中進(jìn)行查詢。
復(fù)制代碼 代碼如下:
$(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);
}
});
}
});
}
);
您可能感興趣的文章:
- jQuery UI Autocomplete 體驗(yàn)分享
- jQuery UI AutoComplete 自動(dòng)完成使用小記
- jQuery UI Autocomplete 1.8.16 中文輸入修正代碼
- jQuery ui autocomplete選擇列表被Bootstrap模態(tài)窗遮擋的完美解決方法
- firefox下jQuery UI Autocomplete 1.8.*中文輸入修正方法
- jQuery.Autocomplete實(shí)現(xiàn)自動(dòng)完成功能(詳解)
- jQuery 插件autocomplete自動(dòng)完成應(yīng)用(自動(dòng)補(bǔ)全)(asp.net后臺(tái))
- jquery autocomplete自動(dòng)完成插件的的使用方法
- jQuery autoComplete插件兩種使用方式及動(dòng)態(tài)改變參數(shù)值的方法詳解
- jQuery Autocomplete自動(dòng)完成插件
- jquery UI實(shí)現(xiàn)autocomplete在獲取焦點(diǎn)時(shí)得到顯示列表功能示例
相關(guān)文章
使用jquery實(shí)現(xiàn)div的tab切換實(shí)例代碼
以前使用js代碼來寫的簡(jiǎn)單效果現(xiàn)在用jQ來寫,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-05-05jQuery實(shí)現(xiàn)響應(yīng)鼠標(biāo)背景變化的動(dòng)態(tài)菜單效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)響應(yīng)鼠標(biāo)背景變化的動(dòng)態(tài)菜單效果代碼,涉及jquery鼠標(biāo)mouseover事件操作頁面元素屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08jquery實(shí)現(xiàn)的橫向二級(jí)導(dǎo)航效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)的橫向二級(jí)導(dǎo)航效果代碼,可實(shí)現(xiàn)鼠標(biāo)滑過導(dǎo)航出現(xiàn)下拉菜單切換的效果,非常簡(jiǎn)潔自然,涉及jquery鼠標(biāo)hover事件及頁面元素樣式的動(dòng)態(tài)改變技巧,需要的朋友可以參考下2015-08-08flag和jq on 的綁定多個(gè)對(duì)象和方法(必看)
下面小編就為大家?guī)硪黄猣lag和jq on 的綁定多個(gè)對(duì)象和方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02基于jQuery實(shí)現(xiàn)列表循環(huán)滾動(dòng)小技巧(超簡(jiǎn)單)
只要能夠不停地把第一個(gè)item移動(dòng)到末尾,其余的自會(huì)往上填補(bǔ)空缺,填補(bǔ)的過程用動(dòng)畫放慢些,就能有不斷滾動(dòng)的視覺效果了,這種效果基于jquery怎么實(shí)現(xiàn)呢?下面小編給大家?guī)砹薺Query列表循環(huán)滾動(dòng)效果的實(shí)現(xiàn)思路代碼,一起看看吧2021-08-08