Autocomplete

1、功能javascript

根據用戶輸入值進行搜索和過濾,讓用戶快速找到並從預設值列表中選擇。php

官網地址:http://jqueryui.com/autocomplete/css

 

2、使用html

1、引入文件java

<link rel="stylesheet" href="css/jquery-ui.css">
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery-ui.js"></script>

2、html代碼:jquery

<div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags">
</div>

三、js代碼:c++

$( function() {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"
    ];
    $( "#tags" ).autocomplete({
        source: availableTags
    });
} );

四、自定義下拉菜單高度:修改jquery.ui.css,添加紅色標註部分代碼數組

.ui-autocomplete {
   position: absolute;
   top: 0;
   left: 0;
   cursor: default;
   overflow-y: auto;    
   overflow-x: hidden;
   max-height: 230px;
}

 

3、APIruby

1、鍵盤輸入app

當下拉菜單展開時,能夠使用下列鍵盤命令:

UP:將焦點移至上一個選項

DOWN:將焦點移至下一個選項

ESCAPE:關閉下拉菜單

ENTER:選擇下拉菜單中當前處於焦點的選項並關閉下拉菜單

TAB:選擇下拉菜單中當前處於焦點的選項,關閉下拉菜單並將焦點移至下一個可聚焦的元素

PAGE UP/PAGE DOWN:將焦點置頂/置底

當下拉菜單關閉時,能夠使用下列鍵盤命令:

UP/DOWN:展開下拉菜單,若是minLength屬性已定義

 

2、屬性

2.1 appendTo:下拉菜單被添加至哪一個元素,默認值爲input標籤的class爲"ui-front"祖先元素

初始化代碼:

$( ".selector" ).autocomplete({
     appendTo: "#someElem"
});

2.2  autoFocus:設置爲true值時,當下拉菜單展開時第一個選項將自動獲取焦點

$( ".selector" ).autocomplete({
    autoFocus: true
});

2.3 delay:延遲時間,單位爲毫秒

$( ".selector" ).autocomplete({
     delay: 500
});

2.4 disabled:禁用插件,默認值爲false

$( ".selector" ).autocomplete({
    disabled: true
});

2.5 minLength:展現下拉菜單須要的最小輸入字符數

$( ".selector" ).autocomplete({
     minLength: 0
});

2.6 source:

類型:Array,String,Function

默認值:無,必須指定

Array:數組能夠被使用爲本地數據

字符串數組:["Choice1","Choice2"],

有label和value屬性的對象數組:[{label:"Choice1",value:"value1"},...]

String:指向一個能夠轉換爲JSON數據的URL

$( ".selector" ).autocomplete({
     source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
});

 

3、方法Methods

3.1 close():關閉下拉菜單

$( ".selector" ).autocomplete( "close" );

3.2 destroy():完全移除自動完成插件功能

$( ".selector" ).autocomplete( "destroy" );

3.3 disable():禁用插件

$( ".selector" ).autocomplete( "disable" );

3.4 enable():啓用插件

$( ".selector" ).autocomplete( "enable" );

3.5 option(optionName):獲取特定屬性值

var isDisabled = $( ".selector" ).autocomplete( "option", "disabled" );

3.6 option():獲取全部屬性值,返回一個包含屬性鍵值對的對象

var options = $( ".selector" ).autocomplete( "option" );

3.7 option(optionName,value):給特定屬性賦值

$( ".selector" ).autocomplete( "option", "disabled", true );

3.8 option( options ):給一個或多個屬性賦值

$( ".selector" ).autocomplete( "option", { disabled: true } );

 

4、擴展點Extension Points

4.1 _renderItem(ul,item):控制下拉菜單每一個選項的生成

_renderItem: function( ul, item ) {
  return $( "<li>" )
    .attr( "data-value", item.value )
    .append( item.label )
    .appendTo( ul );
}

4.2 _renderMenu(ul,items):控制生成下拉菜單的方法

_renderMenu: function( ul, items ) {
  var that = this;
  $.each( items, function( index, item ) {
        that._renderItemData( ul, item );
  });
  $( ul ).find( "li:odd" ).addClass( "odd" );
}

4.3 _resizeMenu():下拉菜單展開以前控制其大小

_resizeMenu: function() {
      this.menu.element.outerWidth( 500 );
}

 

5、事件Events

5.1 change(event,ui)

當區域失去焦點,且輸入值發生改變時觸發事件

初始化:

$( ".selector" ).autocomplete({
    change: function( event, ui ) {}
});

綁定事件監聽:

$( ".selector" ).on( "autocompletechange", function( event, ui ) {} );

5.2 close(event,ui)

當下拉菜單隱藏時觸發

5.3 create(event,ui)

建立插件時觸發

5.4 focus(event,ui)

當焦點移動至選項時觸發。默認操做是將處於焦點選項的值代替輸入區域的值

5.5 open(event,ui)

當下拉菜單展開時觸發

5.6 select(event,ui)

當選中下拉菜單的某個選項時觸發

相關文章
相關標籤/搜索