天天看點

jQuery Autocomplete插件 Jquery AutoComplete的使用方法執行個體

Jquery AutoComplete的使用方法執行個體

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

jquery-autocomplete配置:

<script type=”text/javascript” src=”/js/jquery-1.4.2.min.js”></script>

 <script type=”text/javascript” src=”/js/jquery.autocomplete.min.js”></script>

 <link rel=”Stylesheet” href=”/js/jquery.autocomplete.css” />

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

jQuery Autocomplete插件 Jquery AutoComplete的使用方法執行個體

 1  < html  xmlns =”http://www.w3.org/1999/xhtml” >

 2  < head  runat =”server” >

 3       < title > AutoComplate </ title >

 4       < script  type =”text/javascript”  src =”/js/jquery-1.4.2.min.js” ></ script >

 5       < script  type =”text/javascript”  src =”/js/jquery.autocomplete.min.js” ></ script >

 6       < link  rel =”Stylesheet”  href =”/js/jquery.autocomplete.css”   />

 7       < script  type =”text/javascript” >

 8          (</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">()&nbsp;{<br></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;data&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Core&nbsp;Selectors&nbsp;Attributes&nbsp;Traversing&nbsp;Manipulation&nbsp;CSS&nbsp;Events&nbsp;Effects&nbsp;Ajax&nbsp;Utilities</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">.split(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5"><br></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;( ’ #keyword ’ ).autocomplete(data).result( function (event, data, formatted) {

12                  alert(data);

13              });

14          });

15       </ script >

16  </ head >

17  < body >

18       < form  id =”form1”  runat =”server” >

19       < div >

20           < input  id =”keyword”   />

21           < input  id =”getValue”  value =”GetValue”  type =”button”   />

22       </ div >

23       </ form >

24  </ body >

25  </ html >

jQuery Autocomplete插件 Jquery AutoComplete的使用方法執行個體

result方法是jQuery Autocomplete插件裡的重要方法,它在使用者在標明了某個條目時觸發。data參數為選中的資料。

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

jQuery Autocomplete插件 Jquery AutoComplete的使用方法執行個體

 1  < html  xmlns =”http://www.w3.org/1999/xhtml” >

 2  < head  runat =”server” >

 3       < title > 自定義提示 </ title >

 4       < script  type =”text/javascript”  src =”/js/jquery-1.4.2.min.js” ></ script >

 5       < script  type =”text/javascript”  src =”/js/jquery.autocomplete.min.js” ></ script >

 6       < link  rel =”Stylesheet”  href =”/js/jquery.autocomplete.css”   />

 7       < script  type =”text/javascript” >

 8           var  emails  =  [

 9              { name:  ” Peter Pan ” , to:  ” [email protected] ”  },

10              { name:  ” Molly ” , to:  ” [email protected] ”  },

11              { name:  ” Forneria Marconi ” , to:  ” [email protected] ”  },

12              { name:  ” Master <em>Sync</em> ” , to:  ” [email protected] ”  },

13              { name:  ” Dr. <strong>Tech</strong> de Log ” , to:  ” [email protected] ”  },

14              { name:  ” Don Corleone ” , to:  ” [email protected] ”  },

15              { name:  ” Mc Chick ” , to:  ” [email protected] ”  },

16              { name:  ” Donnie Darko ” , to:  ” [email protected] ”  },

17              { name:  ” Quake The Net ” , to:  ” [email protected] ”  },

18              { name:  ” Dr. Write ” , to:  ” [email protected] ”  },

19              { name:  ” GG Bond ” , to:  ” [email protected] ”  },

20              { name:  ” Zhuzhu Xia ” , to:  ” [email protected] ”  }

21          ];

22 

23              (</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">()&nbsp;{<br></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;( ’ #keyword ’ ).autocomplete(emails, {

25                      max:  12 ,     // 清單裡的條目數

26                      minChars:  0 ,     // 自動完成激活之前填入的最小字元

27                      width:  400 ,      // 提示的寬度,溢出隐藏

28                      scrollHeight:  300 ,    // 提示的高度,溢出顯示滾動條

29                      matchContains:  true ,     // 包含比對,就是data參數裡的資料,是否隻要包含文本框裡的資料就顯示

30                      autoFill:  false ,     // 自動填充

31                      formatItem:  function (row, i, max) {

32                           return  i  +   ’ / ’   +  max  +   ’ :” ’   +  row.name  +   ’ “[ ’   +  row.to  +   ’ ] ’ ;

33                      },

34                      formatMatch:  function (row, i, max) {

35                           return  row.name  +  row.to;

36                      },

37                      formatResult:  function (row) {

38                           return  row.to;

39                      }

40                  }).result( function (event, row, formatted) {

41                      alert(row.to);

42                  });

43              });

44       </ script >

45  </ head >

46  < body >

47       < form  id =”form1”  runat =”server” >

48       < div >

49           < input  id =”keyword”   />

50           < input  id =”getValue”  value =”GetValue”  type =”button”   />

51       </ div >

52       </ form >

53  </ body >

54  </ html >

jQuery Autocomplete插件 Jquery AutoComplete的使用方法執行個體

formatItem、formatMatch、formatResult是自定提示資訊的關鍵。

formatItem作用在于可以格式化清單中的條目,比如我們加了“I”,讓清單裡的字顯示出了斜體。

formatMatch是配合formatItem使用,作用在于,由于使用了formatItem,是以條目中的内容有所改變,而我們要比對的是原始的資料,是以用formatMatch做一個調整,使之比對原始資料,

formatResult是定義最終傳回的資料,比如我們還是要傳回原始資料,而不是formatItem過的資料。