jQueryオートコンプリート


jQueryの別のプラグインに注目してもらいたいと思います。今回は私の好みでオートコンプリートします。



説明




プラグインの最初の利点はパフォーマンスです。 すべてのクエリ結果はキャッシュされ、次回はサーバーからではなくキャッシュから選択されます。
さらに、セパレーターの使用、マルチワード検索、サーバーにリクエストを送信せずにコンポーネントをオフラインで使用する機能など、いくつかのユニークな機能があります。

IE 6.0 +、FF 2 +、Safari 2.0 +、Opera 9.0 +、Chrome 1.0+で動作します



設置


インストール手順はごく普通です。jQueryの後にjsファイルを含めるだけです。
< script type ="text/javascript" src ="jquery.js" ></ script >
<script type= "text/javascript" src= "jquery.autocomplete.js" > </ script >


* This source code was highlighted with Source Code Highlighter .


使用する


標準入力にオートコンプリートを追加します。
< input type ="text" name ="q" id ="query" />

* This source code was highlighted with Source Code Highlighter .


次に、オートコンプリートオブジェクトが初期化されます。DOMモデルのロード後にこれが行われることを確認してください。そうしないと、IEでグリッチが発生する可能性があります。
$( '#query' ).autocomplete({
serviceUrl: 'service/autocomplete.ashx' , //
minChars: 2, //
delimiter: /(,|;)\s*/, // ,
maxHeight: 400, // ,
width: 300, //
zIndex: 9999, // z-index
deferRequestBy: 0, // (), , , . 300.
params : { country: 'Yes' }, //
onSelect: function (data, value){ }, // Callback , ,
lookup: [ 'January' , 'February' , 'March' ] //
});


* This source code was highlighted with Source Code Highlighter .


serviceUrlで指定されたページはGETリクエストを受信し、レスポンスとしてデータをJSON形式で送信する必要があります。

{
query: 'Li' , //
suggestions:[ 'Liberia' , 'Libyan Arab Jamahiriya' , 'Liechtenstein' , 'Lithuania' ], //
data:[ 'LR' , 'LY' , 'LI' , 'LT' ] // , . callback
}


* This source code was highlighted with Source Code Highlighter .


オブジェクトの関数を使用して、いつでもパラメーターを再初期化するだけでなく、自動入力を有効/無効にすることができます。
var ac = $( '#query' ).autocomplete({ /**/ });
ac.disable();
ac.enable();
ac.setOptons({ zIndex: 1001 });


* This source code was highlighted with Source Code Highlighter .


様式化


きしみ音は、次のマークアップフラグメントを作成します。
< div class ="autocomplete-w1" >
< div style ="width:299px;" id ="Autocomplete_1240430421731" class ="autocomplete" >
< div >< strong > Li </ strong > beria </ div >
< div >< strong > Li </ strong > byan Arab Jamahiriya </ div >
< div >< strong > Li </ strong > echtenstein </ div >
< div class ="selected" >< strong > Li </ strong > thuania </ div >
</ div >
</ div >


* This source code was highlighted with Source Code Highlighter .


CSSスタイルの例を次に示します。
.autocomplete-w1 { background:url(img/shadow.png) no-repeat bottom right; position:absolute; top:0px; left:0px; margin:6px 0 0 6px; /* IE6 fix: */ _background:none; _margin:1px 0 0 0; }
.autocomplete { border:1px solid #999; background:#FFF; cursor:default; text-align:left; max-height:350px; overflow:auto; margin:-6px 6px 6px -6px; /* IE6 specific: */ _height:350px; _margin:0; _overflow-x:hidden; }
.autocomplete .selected { background:#F0F0F0; }
.autocomplete div { padding:2px 5px; white-space:nowrap; overflow:hidden; }
.autocomplete strong { font-weight:normal; color:#3399FF; }


* This source code was highlighted with Source Code Highlighter .


参照資料


説明: www.devbridge.com/projects/autocomplete/jquery
ここからプラグインをダウンロードします: www.devbridge.com/projects/autocomplete/jquery/#download
Jsプロトタイプバージョン: www.devbridge.com/projects/autocomplete/#download

UPD

他のフレームフォークの同様のソリューション


MooTools: www.ajaxdaddy.com/mootools-autocomplete.htmlZyavaに感謝)

Source: https://habr.com/ru/post/J74713/


All Articles