<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Ajax 實現函數 autocomplete

    <html xmlns="http://www.w3.org/1999/xhtml">
     <head id="Head1" runat="server">
         <title>AutoComplate</title>
         <script type="text/javascript" src="js/jquery.min.js"></script>
         <script type="text/javascript" src="js/jquery.autocomplete.min.js"></script>
       
        <link rel="Stylesheet" href="js/css/jquery.autocomplete.css" /> 
       
         <script type="text/javascript">
             $(
    function() {

               var emails = [

                    { name: "Peter Pan", to: "peter@pan.de" },

                    { name: "Molly", to: "molly@yahoo.com" },

                    { name: "Forneria Marconi", to: "live@japan.jp" },

                    { name: "Master <em>Sync</em>", to: "205bw@samsung.com" },

                    { name: "Dr. <strong>Tech</strong> de Log", to: "g15@logitech.com" },

                    { name: "Don Corleone", to: "don@vegas.com" },

                    { name: "Mc Chick", to: "info@donalds.org" },

                    { name: "Donnie Darko", to: "dd@timeshift.info" },

                    { name: "Quake The Net", to: "webmaster@quakenet.org" },

                    { name: "Dr. Write", to: "write@writable.com" }

                    ];
                            
                 $('#content').autocomplete(emails,
                 {
                    width :400,
                    formatItem: function (row, i, max) {  
                     //   var row=eval("("+row+")");//將JSON轉換成對象   
                        return "<table><tr><td align='left'>" + row.name + "</td><td align='right'>約" + row.to + "個寶貝</td></tr></table>";

                     },
                    formatMatch: function(row, i, max){
                       // var obj=eval("("+row+")");//將JSON轉換成對象   
                         return row.name + " " + row.to;

                    } ,

                    formatResult: function(row, i, max) {
                      
                          return row.to;

                      }                
                 });
            

             
               //此處為動態查詢數據例子  (返回Json)
                 $("#keyword").autocomplete("default6.aspx", {
                            minChars: 
    0
                            max:
    10
                            width: 
    400,
                            matchCase:
    false,//不區分大小寫
                          //  matchContains :true,
                           // autoFill: false,
                            scroll: false,
                            dataType: 
    'json',    
                            scrollHeight: 
    500,
                           //此處為傳遞參數
                            extraParams:{v:function() { return $('#keyword').val();}},
                          //需要把data轉換成json數據格式 
                         
                            parse: function(data) {
                               
    return $.map(eval(data), function(row) {
                                   
    return {
                                    data: row,
                                    value: row.Guage,    //此處無需把全部列列出來,只是兩個關鍵列
                                    result: row.Matcode 
                                  }
                            });
                     },
                    formatItem: 
    function(data, i, total) {  
                       
    return "<table><tr><td align='left'>" + data.Guage + "</td><td align='right'> " + data.Unit + " </td></tr></table>"
                        
                     },
                    formatMatch: 
    function(data, i, total) {
                                
    return data.Guage;
                     },
                    formatResult: 
    function(data, value) { 
                              
     return data.Guage;   
                     }
                    }).result(
    function(event, data, formatted) { //回調
                             $('#keyword').val(data.Matcode);   //不知為何自動返回值后總是加了個“,”,所以改成后賦值
                             $(
    "#content").val(data.Guage+data.Unit);
                });
      });  
         
    </script>
     </head>
     <body>
         <form id="form1" runat="server">
         <div>
             <input id="keyword" />
             <input id="content" />
         </div>
         </form>
     </body>
     </html>
    復制代碼

    引用:

    三、參數說明:

    * 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

    * extraParams (Object):

    為后臺(一般是服務端的腳本)提供更多的參數.和通常的作法一樣是使用一個鍵值對對象.如果傳過去的值是{ bar:4 },將會被autocompleter解析成my_autocomplete_backend.aspx?q=foo&bar=4 (假設當前用戶輸入了foo). Default: {}

    * result (handler) Returns: jQuery

    此事件會在用戶選中某一項后觸發,參數為:

    event: 事件對象. event.type為result.

    formatted:formatResult函數返回的值

    $("#singleBirdRemote").result(function(event, data, formatted) {

    //如選擇后給其他控件賦值,觸發別的事件等等

    });

    四、注意問題:

    1.網上有人說對中文的檢索時處理有問題,經過測試此版本沒有問題 2.在使用遠程地址時,它默認傳入的參數是:q(輸入值),limit(返回結果的最大值),可以使用extraParams傳入其他的參數

    exmple:
    http://www.2cto.com/kf/201202/118735.html

    posted on 2012-05-19 00:14 youngturk 閱讀(603) 評論(0)  編輯  收藏 所屬分類: Ajax

    <2012年5月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    公告

    this year :
    1 jQuery
    2 freemarker
    3 框架結構
    4 口語英語

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    EJB學習

    Flex學習

    learn English

    oracle

    spring MVC web service

    SQL

    Struts

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲av片劲爆在线观看| 亚洲视频在线一区二区| 亚洲欧洲中文日产| 无码A级毛片免费视频内谢| 亚洲熟妇av一区二区三区| 国产无遮挡又黄又爽免费网站| 免费播放特黄特色毛片| 美女被艹免费视频| 啦啦啦www免费视频| 人人狠狠综合久久亚洲| 国产精品极品美女免费观看| 国产亚洲精品AAAA片APP| 亚洲黄黄黄网站在线观看| 一区二区3区免费视频| 亚洲色欲久久久综合网东京热| 中文字幕不卡免费高清视频| 久久亚洲精品成人综合| 中文字幕免费视频| 亚洲精品无码专区久久| 亚洲av日韩av欧v在线天堂| 久久精品国产免费| 婷婷亚洲久悠悠色悠在线播放| 少妇无码一区二区三区免费| 亚洲国产中文在线视频| 国产成人高清精品免费鸭子| 一级午夜免费视频| 亚洲男人第一av网站| 一个人免费观看www视频在线| 狠狠入ady亚洲精品| 亚洲精品成人片在线播放| 永久免费在线观看视频| 亚洲欧洲日产国码久在线| 久久久久无码专区亚洲av| 午夜影院免费观看| 亚洲成av人片天堂网无码】| 9277手机在线视频观看免费| 亚洲一区二区三区久久| 亚洲av午夜成人片精品电影| 久久国产免费一区二区三区| 亚洲国产aⅴ成人精品无吗| 亚洲日韩精品A∨片无码|