Jquery AutoComplete的使用方法實例

轉載地址http://www.cnblogs.com/hyl8218/archive/2010/03/19/1688828.html

相關文章

http://topic.csdn.net/u/20090703/14/8d349262-8ca1-4bf5-998d-3a0712412149.html

http://archive.cnblogs.com/a/2031613/

http://www.cnblogs.com/huaibaobao/archive/2008/09/26/1299691.html

http://hi.baidu.com/%B1%C8%B1%CB/blog/item/c6c63dcb525a654af21fe7b1.html

http://blog.csdn.net/Mirror_Jean/article/details/5394517

 

jQuery的Autocomplete(自動完成、自動填充)插件有不少,但比較下來我感覺,還是bassistance.de的JQuery Autocomplete plugin比較強大,我們就來寫一些代碼感受一下。

  

jquery-autocomplete配置:

<script type="text/javascript" src="/js/jquery-1.4.1.min.js"></script>
 <script type="text/javascript" src="/js/jquery.autocomplete.min.js"></script>
 <link rel="Stylesheet" href="/js/jquery.autocomplete.css" />

 

首先是一個最簡單的Autocomplete(自動完成)代碼片段:

 

<!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 runat="server">
    <title>AutoComplate</title>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
    <script type="text/javascript" src="Scripts/jquery.autocomplete.min.js"></script>
    <link rel="Stylesheet" href="Scripts/jquery.autocomplete.css" />
    <script type="text/javascript">
        $(function () {
            var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" ");
            $('#keyword').autocomplete(data).result(function (event, data, formatted) {
                alert(data);
            });
        });
    </script>
</head>
<body>
<form id="form1" runat="server">
    <div>
         <input id="keyword" />
         <input id="getValue" value="GetValue" type="button" />
    </div>
</form>
</body>
</html>


result方法是jQuery Autocomplete插件裏的重要方法,它在用戶在選定了某個條目時觸發。data參數爲選中的數據。

 

一個稍微複雜的例子,可以自定義提示列表:

 

<!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 runat="server">
    <title>自定義提示</title>
    <script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
    <script type="text/javascript" src="Scripts/jquery.autocomplete.min.js"></script>
    <link rel="Stylesheet" href="Scripts/jquery.autocomplete.css" />
    <script type="text/javascript">
        var emails = [
        { name: "Peter Pan", to: "[email protected]" },
        { name: "Molly", to: "" },
        { name: "Forneria Marconi", to: "[email protected]" },
        { name: "Master <em>Sync</em>", to: "" },
        { name: "Dr. <strong>Tech</strong> de Log", to: "" },
        { name: "Don Corleone", to: "" },
        { name: "Mc Chick", to: "[email protected]" },
        { name: "Donnie Darko", to: "[email protected]" },
        { name: "Quake The Net", to: "" },
        { name: "Dr. Write", to: "" },
        { name: "Mc_xueyong", to: "[email protected]" },
        { name: "Dota", to: "[email protected]" }
        ];


        $(function () {
            $('#keyword').autocomplete(emails, {
                max: 12, //列表裏的條目數
                minChars: 0, //自動完成激活之前填入的最小字符
                width: 400, //提示的寬度,溢出隱藏
                scrollHeight: 300, //提示的高度,溢出顯示滾動條
                matchContains: true, //包含匹配,就是data參數裏的數據,是否只要包含文本框裏的數據就顯示
                autoFill: false, //自動填充
                formatItem: function (row, i, max) {
                    return i + '/' + max + ':"' + row.name + '"[' + row.to + '}';
                },
                formatMatch: function (row, i, max) {
                    return row.name + row.to;
                },
                formatResult: function (row) {
                    return row.to;
                }
            }).result(function (event, row, formatted) {
                alert(row.to);
            });
        });
    </script>
</head>
<body>
<form id="form1" runat="server">
    <div>
         <input id="keyword" />
         <input id="getValue" value="GetValue" type="button" />
    </div>
</form>
</body>
</html>

formatItem、formatMatch、formatResult是自定提示信息的關鍵。

formatItem作用在於可以格式化列表中的條目,比如我們加了“I”,讓列表裏的字顯示出了斜體。

formatMatch是配合formatItem使用,作用在於,由於使用了formatItem,所以條目中的內容有所改變,而我們要匹配的是原始的數據,所以用formatMatch做一個調整,使之匹配原始數據,

formatResult是定義最終返回的數據,比如我們還是要返回原始數據,而不是formatItem過的數據。<\p>

發佈了102 篇原創文章 · 獲贊 22 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章