<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 閱讀(593) 評論(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

    生活保健

    解析文件

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 两性色午夜免费视频| 免费人成再在线观看网站| 最近免费mv在线观看动漫 | av无码国产在线看免费网站 | 三级毛片在线免费观看| 久久亚洲国产精品123区| 2022国内精品免费福利视频| 亚洲精品国精品久久99热| 免费视频成人国产精品网站| 四虎影永久在线高清免费| 天堂亚洲免费视频| 国产精品亚洲综合专区片高清久久久| 一区在线免费观看| 久久久亚洲精品蜜桃臀| 国内精品免费在线观看| 久久久久亚洲av无码专区| 午夜性色一区二区三区免费不卡视频 | 亚洲av无码国产精品夜色午夜| 在线免费观看伊人三级电影| 亚洲国产成人片在线观看| 久久精品无码专区免费青青| 亚洲成AV人综合在线观看| 妞干网在线免费视频| 色妞www精品视频免费看| 中文字幕在线亚洲精品 | 中文字幕手机在线免费看电影 | 亚洲一级特黄大片在线观看| 中文精品人人永久免费| 亚洲精品人成电影网| 女人被弄到高潮的免费视频| 色吊丝性永久免费看码 | 亚洲а∨精品天堂在线| 亚洲阿v天堂在线2017免费| 久久这里只精品国产免费10| 亚洲av无码片区一区二区三区| 国产一级做a爱免费视频| 久久久久久免费一区二区三区| 亚洲一区二区三区免费在线观看 | 午夜无遮挡羞羞漫画免费| 一级毛片免费不卡直观看| 亚洲视频在线免费看|