【JQuery】Autocomplete【自動完成】

使用JQuery前,需要引用Jquery元件。

自動完成(Autocomplete)功能方便於使用者輸入資料時,提示相關字眼,以節省時間與效率。
本篇介紹兩種常用方式,與ASP做結合,若要其他詳細功能請參考官網

HTML 頁面(參考)︰
航空公司 <input id="tags" name="tags" type="text" />

方法一(直接產生List方式)
Javascript︰
<script type="text/javascript">
 $(function () {
       var availableTags = <%=TagList %>;
            $('#tags').autocomplete({
             source: availableTags,   //資料來源                
                minLength: 0    //輸入最少字數            
       });            
         // 自動完成focus ; Click文字盒就顯示全部List
       $('#tags').focus(function () {
           if (this.value == "") {
               $(this).autocomplete("search");
           }
       });
   });
</script>
 
ASP(參考)︰
   TagList=""     
   'Select GetAirline  全部             
    sqlstr = "Select  Code_Desc1 From System_Code Where Status = 1 And UpLevelID = 'X12'  ORDER BY LevelID "      

    set rs=Exec_Record(sqlstr)
    if not rs.eof then
  TagList="["
       do while not rs.eof
         TagList=TagList & """" & trim(rs("Code_Desc1")) & ""","
         rs.movenext
  loop
       TagList=left(TagList,len(TagList)-1)
       TagList=TagList & "]" 
    end if   
    rs.close : set rs = nothing

EX:TagList內容串成 JSON格式 為 ["中華航空","長榮航空","復興航空","華信航空","立榮航空","遠東航空"] 
==================================================================================================

方法二(透過DataSource方式)
Javascript︰
<script type="text/javascript">
 $(function () {
            $('#tags').autocomplete({
             source: "search.asp",   //資料來源                
                minLength: 0    //輸入最少字數              
       });
         // 自動完成focus ; Click文字盒就顯示全部List
       $('#tags').focus(function () {
           if (this.value == "") {
               $(this).autocomplete("search");
           }
       });
   });
</script>

ASP(參考)︰
   Session.CodePage=65001 
   Response.CharSet="utf-8"   
   TagList=""
   prefixText=request("term")   '使用者輸入字串      
   'Select GetAirline 文字篩選              
    sqlstr = "Select  Code_Desc1 From System_Code Where Status = 1 And UpLevelID = 'X12' " & _ 
              " And (Code_Desc1 like '%" & prefixText & "%' or Code_Desc3 like '%" & prefixText & "%') ORDER BY LevelID" 

    set rs=Exec_Record(sqlstr)
    if not rs.eof then
  TagList="["
       do while not rs.eof
         TagList=TagList & """" & trim(rs("Code_Desc1")) & ""","
         rs.movenext
  loop
       TagList=left(TagList,len(TagList)-1)
       TagList=TagList & "]" 
    end if   
    rs.close : set rs = nothing
response.write TagList   '輸出列表

執行畫面(點選文字盒)︰

執行畫面(輸入文字)︰


參考資源︰
jQuery UI 的自動完成器 autocomplete 測試

jQuery Autocomplete UI get source from asp page

jQuery Autocomplete 官網

留言

這個網誌中的熱門文章

【ASP】日期轉換(西元<-->民國)

【VB】使用NPOI元件來匯出Excel--DataTableToExcel

【SQL】符號切割字串變成多欄