jquery ui autocomplete widget

jQuery UI Autocomplete是jQuery UI的自动完成组件,它支持本地的Array/JSON数组、通过ajax请求的Array/JSON数组、JSONP、以及Function(最灵活)等方式来获取数据

 

支持的数据格式

jQuery UI Autocomplete主要支持字符串ArrayJSON两种数据格式

普通的Array格式没有什么特殊的,如下:

  
  
  
  
  1. ["cnblogs","博客园","�逶�"
?

 对于JSON格式的Array,则要求有:labelvalue属性,如下:

  
  
  
  
  1. [{label: "博客园", value: "cnblogs"}, {label: "�逶�", value: "�逶�"}] 

其中label属性用于显示在autocomplete弹出菜单,而value属性则是选中后给文本框赋的值。

如果没有指定其中一个属性则用另一个属性替代(即value和label值一样),如下:

  
  
  
  
  1. [{label: "cnblogs"}, {label: "�逶�"}] 
  2. [{value: "cnblogs"}, {value: "�逶�"}] 

 

如果label和value都没有指定,则无法用于autocomplete的提示。

另外需要注意,对于从服务器端输出的JSON的key必须用双引号,如下:

  
  
  
  
  1. [{"label""博客园""value""cnblogs"}, {"label""�逶�""value""�逶�"}] 

 

 

jQuery UI Autocomplete常用的参数有:

  1. Source:用于指定数据来源,类型为String、Array、Function
    1. String:用于ajax请求的服务器端地址,返回Array/JSON格式
    2.      
           
           
           
      1. $( "#birds" ).autocomplete({ 
      2.       source: "search.action"
      3.       minLength: 2,
      4. }); 
    3. Array:即字符串数组 或 JSON数组
    4.      
           
           
           
      1. var availableTags = [ 
      2.      "ActionScript"
      3.      "AppleScript"
      4.      "Asp"
      5.      "BASIC"
      6.      "C"
      7.      "C++"
      8.      "Clojure"
      9.      "COBOL"
      10.      "ColdFusion"
      11.      "Erlang"
      12.      "Fortran"
      13.      "Groovy"
      14.      "Haskell"
      15.      "Java"
      16.      "JavaScript"
      17.      "Lisp"
      18.      "Perl"
      19.      "PHP"
      20.      "Python"
      21.      "Ruby"
      22.      "Scala"
      23.      "Scheme" 
      24.    ]; 
      25.    $( "#tags" ).autocomplete({ 
      26.      source: availableTags 
      27.    }); 
    5. Function(request, response):通过request.term获得输入的值,response([Array])来呈现数据;(JSONP是这种方式)
    6.      
           
           
           
      1. $( "#test" ).autocomplete({ 
      2.       source: function(request,response){ 
      3.           $.ajax({ 
      4.               url: "ajax2.action"
      5.               dataType: "json"
      6.               data: request, 
      7.               success: function(data){ 
      8.                   response($.map(data,function(val,i){ 
      9.                       return { 
      10.                           label: val.label, 
      11.                           value: val.value, 
      12.                       } 
      13.                   })); 
      14.               }, 
      15.                
      16.           }); 
      17.       },
      18.  }); 
  2. minLength:当输入框内字符串长度达到minLength时,激活Autocomplete
  3. autoFocus:当Autocomplete选择菜单弹出时,自动选中第一个
  4. delay:即延迟多少毫秒激活Autocomplete

 

 

你可能感兴趣的:(jquery,UI,autocomplete,widget)