国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery UI AutoComplete 使用說明

2019-11-20 23:47:39
字體:
來源:轉載
供稿:網友
介紹
在 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 class="demo">
<div class="ui-widget">
<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);
}
});
}
});
}
);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江山市| 同德县| 镇平县| 张家口市| 古丈县| 韶关市| 获嘉县| 盐池县| 松江区| 襄樊市| 敦煌市| 门源| 城步| 柳江县| 诏安县| 闵行区| 临沂市| 方山县| 大渡口区| 吴江市| 衡南县| 吴桥县| 西平县| 泰来县| 巴里| 雷波县| 阆中市| 阳江市| 讷河市| 永靖县| 泰和县| 顺义区| 广平县| 舒兰市| 林甸县| 鲜城| 石河子市| 德化县| 西畴县| 普陀区| 凤庆县|