DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery常見問題 >> jQuery自動完成插件Autocomplete實例
jQuery自動完成插件Autocomplete實例
編輯:JQuery常見問題     
一、Autocomplete實例介紹

jQuery Autocomplete 是流行的實現自動填充功能插件,能夠很好的實現輸入框的自動完成(autocomplete)、建議提示(input suggest)功能,支持ajax數據加載。

用戶在使用文本框搜索信息時,實現類似百度、Google文本輸入框自動補全智能提示效果。

Demo功能效果如下:



二、Demo Html代碼片段


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery自動完成組件Autocomplete Demo-</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script type="text/javascript" src="localdata.js"></script>
<link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
<script type="text/javascript">
$().ready(function () {
function log(event, data, formatted) {
$("#txtSelectName").val(data.name);
$("#txtSelectValue").val(data.value);
}

//objects為json數據源對象
$("#txtSelectName").autocomplete(objects, {
minChars: 0, //表示在自動完成激活之前填入的最小字符
max: 5, //表示列表裡的條目數
autoFill: true, //表示自動填充
mustMatch: false, //表示必須匹配條目,文本框裡輸入的內容,必須是data參數裡的數據,如果不匹配,文本框就被清空
matchContains: true, //表示包含匹配,相當於模糊匹配
scrollHeight: 200, //表示列表顯示高度,默認高度為180

formatItem: function (row) {
return row.name;
},
formatMatch: function (row) {
return row.name;
},
formatResult: function (row) {
return row.value;
}
});

$(":text, textarea").result(log).next("#txtSelectValue").click(function () {
$(this).prev().search();
});
});
</script>
</head>
<body>
<div id="content">jQuery自動實現<br /><br />名稱:<input type="text" id="txtSelectName" /> 值:<input type="text" id="txtSelectValue" /></div>
<div>www.</div>
</body>
</html>

三、數據源介紹

Demo中使用了Json數據源,Autocomplete插件同時也支持js數組和遠程數據源。


var objects = [
{ name: "項目一", value: "1" },
{ name: "項目二", value: "2" },
{ name: "項目三", value: "3" },
{ name: "項目四", value: "4" },
{ name: "項目五", value: "5" },
{ name: "項目六", value: "6" },
{ name: "項目七", value: "7" },
{ name: "abc", value: "abc" },
{ name: "abce", value: "abce" },
{ name: "abcef", value: "abcef" },
{ name: "bcd", value: "bcd" },
{ name: "bcdfdsaf", value: "bcd" },
{ name: "bcdfds", value: "bcdfds" },
{ name: "cbd", value: "cbd" },
{ name: "efg", value: "efg" },
{ name: "fgdaf", value: "fgdaf" },
{ name: "fasfs", value: "fasfs" }];

四、常用參數介紹

* minChars (Number):
 在觸發autoComplete前用戶至少需要輸入的字符數.Default: 1,如果設為0,在輸入框內雙擊或者刪除輸入框內內容時顯示列表
* width (Number):
 指定下拉框的寬度. Default: input元素的寬度
* max (Number):
 autoComplete下拉顯示項目的個數.Default: 10
* delay (Number):
 擊鍵後激活autoComplete的延遲時間(單位毫秒).Default: 遠程為400 本地10
* autoFill (Boolean):
 要不要在用戶選擇時自動將用戶當前鼠標所在的值填入到input框. Default: false
* mustMatch (Booolean):
 如果設置為true,autoComplete只會允許匹配的結果出現在輸入框,所有當用戶輸入的是非法字符時將會得不到下拉框.Default: false
* matchContains (Boolean):
 決定比較時是否要在字符串內部查看匹配,如ba是否與foo bar中的ba匹配.使用緩存時比較重要.不要和autofill混用.Default: false
* selectFirst (Boolean):
 如果設置成true,在用戶鍵入tab或return鍵時autoComplete下拉列表的第一個值將被自動選擇,盡管它沒被手工選中(用鍵盤或鼠標).當然如果用戶選中某個項目,那麼就用用戶選中的值. Default: true
* cacheLength (Number):
 緩存的長度.即對從數據庫中取到的結果集要緩存多少條記錄.設成1為不緩存.Default: 10
* matchSubset (Boolean):
 autoComplete可不可以使用對服務器查詢的緩存,如果緩存對foo的查詢結果,那麼如果用戶輸入foo就不需要再進行檢索了,直接使用緩存.通常是打開這個選項以減輕服務器的負擔以提高性能.只會在緩存長度大於1時有效.Default: true
* matchCase (Boolean):
 比較是否開啟大小寫敏感開關.使用緩存時比較重要.如果你理解上一個選項,這個也就不難理解,就好比foot要不要到FOO的緩存中去找.Default: false
* multiple (Boolean):
 是否允許輸入多個值即多次使用autoComplete以輸入多個值. Default: false
* multipleSeparator (String):
 如果是多選時,用來分開各個選擇的字符. Default: ","
* scroll (Boolean):
 當結果集大於默認高度時是否使用卷軸顯示 Default: true
* scrollHeight (Number):
 自動完成提示的卷軸高度用像素大小表示 Default: 180
* formatItem (Function):
 為每個要顯示的項目使用高級標簽.即對結果中的每一行都會調用這個函數,返回值將用LI元素包含顯示在下拉列表中. Autocompleter會提供三個參數(row, i, max): 返回的結果數組, 當前處理的行數(即第幾個項目,是從1開始的自然數), 當前結果數組元素的個數即項目的個數. Default: none, 表示不指定自定義的處理函數,這樣下拉列表中的每一行只包含一個值.
* formatResult (Function):
 和formatItem類似,但可以將將要輸入到input文本框內的值進行格式化.同樣有三個參數,和formatItem一樣.Default: none,表示要麼是只有數據,要麼是使用formatItem提供的值.
* formatMatch (Function):
 對每一行數據使用此函數格式化需要查詢的數據格式. 返回值是給內部搜索算法使用的. 參數值row
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved