jquery autocompleter
1.0.0
ここ: Crayola カラーを使用した例。
npm:
npm install --save jquery-autocompleter
糸:
yarn add jquery-autocompleter
jQuery を含める:
< script src =" http://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js " > </ script >
プラグインのコードを含めます。
<!-- Styles -->
< link rel =" stylesheet " href =" css/jquery.autocompleter.css " />
<!-- Scripts -->
< script src =" js/jquery.autocompleter.min.js " > </ script >
プラグインを呼び出します:
$ ( "input" ) . autocompleter ( {
/* options */
} ) ;
リモートURL
$ ( function ( ) {
$ ( "input" ) . autocompleter ( { source : "path/to/get_data_request" } ) ;
} ) ;
無地
var data = [
{ value : 1 , label : "one" } ,
{ value : 2 , label : "two" } ,
{ value : 3 , label : "three" } ,
] ;
$ ( function ( ) {
$ ( "input" ) . autocompleter ( { source : data } ) ;
} ) ;
オートコンプリーターには次のオプションがあります。
名前 | タイプ | 説明 | デフォルト |
---|---|---|---|
ソース | str、obj | サーバーまたはローカル オブジェクトへの URL | ヌル |
ローカルとして | ブール | リモート応答をローカルソースとして解析する | 間違い |
空の | ブール | 値が空の場合に起動する | 真実 |
限界 | 整数 | 表示される結果の数 | 10 |
最小の長さ | 整数 | オートコンプリーターの最小長 | 0 |
遅れ | 整数 | リクエストを延期するまでの数ミリ秒 | 0 |
カスタムクラス | 配列 | オートコンプリーター要素のカスタム クラスを含む配列 | [] |
キャッシュ | ブール | リクエストの繰り返しを避けるために、xhr データを localStorage に保存します。 | 真実 |
キャッシュの期限切れ | 整数 | localStorage データの有効期間 (秒単位) (キャッシュの有効期限を無効にする場合は 0) | 86400 |
フォーカス開く | ブール | 入力がフォーカスを取得したときにオートコンプリーターを起動する | 真実 |
入力して選択してください | ブール | Enterキーを使用して選択できるようにします | 真実 |
ヒント | ブール | 最初に一致したラベルを入力にヒントを追加します。正しいスタイルをインストールする必要があります。 | 間違い |
最初に選択 | ブール | true に設定すると、オートコンプリート リストの最初の要素が自動的に選択され、changeWhenSelect がオンの場合は無視されます。 | 間違い |
変更時選択 | ブール | オートコンプリート リストで矢印キー ナビゲーションを使用して入力値を変更できるようにします | 真実 |
ハイライトマッチ | ブール | このオプションは、オートコンプリート結果内の一致に対する<strong> タグ ラップを定義します。 | 間違い |
無視されたキーコード | 配列 | 無視できるキーコードを含む配列、デフォルト: 9, 13, 17, 19, 20, 27, 33, 34, 35, 36, 37, 39, 44, 92, 113, 114, 115, 118, 119, 120, 122, 123, 144, 145 | [] |
カスタムラベル | str | ラベルとして使用されるオブジェクトのプロパティの名前 | 間違い |
カスタム値 | str | 値として使用されるオブジェクトのプロパティの名前 | 間違い |
送信前 | 関数 | この関数は、ajax リクエストの前にトリガーされます | $.noop |
onBeforeShow | 関数 | この関数は、リストを表示する準備ができたときにトリガーされます。 | $.noop |
空の | 関数 | データリストが空の場合、この関数をトリガーします | $.noop |
onItem | 関数 | この関数は、各アイテムの表示準備が行われているときにトリガーされます。 | $.noop |
onListOpen | 関数 | この関数はリストが表示されたときにトリガーされます | $.noop |
onListClose | 関数 | この関数は、リストが非表示になっているときにトリガーされます。 | $.noop |
onBeforeLaunch | 関数 | 新しいリクエストの前にイベントがトリガーされました (ローカル キャッシュを含む) | $.noop |
テンプレート | str | リスト項目のカスタム テンプレート。例: <span>{{ label }} is {{ customPropertyFromSource }}</span> 。テンプレートは.autocompleter-item に追加されます。 | 間違い |
オフセット | str | ソース応答オフセット (例: "response.items.posts" 。@deprecated代わりに format を使用してください | 間違い |
形式 | 関数 | ソース データを返すように応答ペイロードをフォーマットする | ヌル |
組み合わせる | 関数 | Ajax データを拡張したオブジェクトを返します。追加のサーバー オプションを渡したい場合に便利です | $.noop |
折り返し電話 | 関数 | 値の選択コールバック関数。引数: value 、 index 、 object | $.noop |
$ ( "#input" ) . autocompleter ( "option" , data ) ;
例えば:
$ ( "#input" ) . autocompleter ( "option" , {
limit : 5 ,
template :
'<img src="{{ image }}" alt="Image for autocompleter list item" /> {{ label }}' ,
} ) ;
$ ( "#input" ) . autocompleter ( "open" ) ;
$ ( "#input" ) . autocompleter ( "close" ) ;
$ ( "#input" ) . autocompleter ( "destroy" ) ;
$ . autocompleter ( "clearCache" ) ;
$ . autocompleter ( "defaults" , {
customClass : "myClassForAutocompleter" ,
} ) ;
キャッシュ、一致の強調表示、および 5 つの結果制限を備えた名入力のオートコンプリーター。遠隔応答は性別によって異なります。
< fieldset >
< label > Male </ label >
< input type =" radio " name =" gender " value =" male " checked =" checked " />
< label > Female </ label >
< input type =" radio " name =" gender " value =" female " />
< label > Other </ label >
< input type =" radio " name =" gender " value =" other " />
< label > First Name </ label >
< input type =" text " name =" firstname " id =" firstname " />
</ fieldset >
$ ( function ( ) {
$ ( "#firstname" ) . autocompleter ( {
source : "https://EXAMPLE_API_ENDPOINT.com/api/search/name" ,
limit : 5 ,
cache : true ,
combine : function ( params ) {
var gender = $ ( "input:radio[name=gender]:checked" ) . val ( ) ;
// passing params to match endpoint
return {
q : params . query ,
count : params . limit ,
gender : gender ,
} ;
} ,
format : function ( data ) {
// map response data to match autocompleter
return data . entries . map ( function ( item ) {
return {
label : item . name ,
value : item . slug ,
} ;
} ) ;
} ,
callback : function ( value , index , object ) {
console . log (
"Value " + value + " are selected (with index " + index + ")."
) ;
console . log ( object ) ;
} ,
} ) ;
} ) ;
div (node) -> ul (list) -> li (item)
。
< div class =" autocompleter " id =" autocompleter-1 " >
< ul class =" autocompleter-list " >
< li class =" autocompleter-item " > First </ li >
<!-- ... -->
< li class =" autocompleter-item " > Last </ li >
</ ul >
</ div >