私は jquery-ui-autocomplete プラグインを使用していますが、オートコンプリートではなくオートロードの感覚を与えるために微調整しました。ドロップダウン ビューではなく、入力フィールドの下の div に結果を表示しています。
入力ボックスをクリックしてもdivのデフォルトデータが変更されないように、minlengthを1に設定しました。
しかし、ユーザーが何かを入力し、結果が div に表示されると、ユーザーが入力フィールドをクリアすると、最後の検索結果が表示され続けます。ここでは、ページの読み込み時に表示されるデフォルト データをいくつか表示したいと考えています。これどうやってするの?
コードスニペット:
$("#search-help").autocomplete({
source: function (request, response) {
var term = $.ui.autocomplete.escapeRegex(request.term)
, containsMatcherTitle = new RegExp(term, "i")
, containsTitle = $.grep(data, function(value) {
return containsMatcherTitle.test(value.value);
});
response((containsTitle.slice(0, 5));
},
focus: function( event, ui ) {
return false;
},
minLength: 3,
select: function(event, ui) {
return false;
},
search: function(event, ui) {
$("#MY_DIV ul").empty();
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( "<a>" + item.value + "</a><span>" + item.desc + "</span>" )
.appendTo($('#MY_DIV ul'));
};