【JQuery UI】AutoCompleteによるサジェスト機能の実装
6037 ワード
サジェスト機能が簡単に実装できることがわかったので勉強してみた。
簡易版
sourceオプションにワードを指定するだけ。
検索の仕様(デフォルト)
- 部分一致検索
- 大文字/小文字区別なし
- 候補数の上限なし
- 必要な文字数:1文字
カスタマイズ1)前方一致検索に変更したい
sourceオプションに関数が書けるので任意にfilterできる。
大文字/小文字区別したい場合は、toLowerCase()の条件を外せばよい。
$("#keyword").autocomplete({
source: function (request, response) {
let list = [];
list = words.filter(function (word) {
return (
word.indexOf(request.term) === 0 || // 前方一致検索
word.toLowerCase().indexOf(request.term) === 0 // 大文字/小文字区別なし
);
});
response(list);
}
});
カスタマイズ2)候補数の上限を絞りたい
配列を返しているだけなので渡す値を制限すればよい。
source: words.slice(0, 6)
カスタマイズ3)リンク先を設定する
ワードにurl要素を増やし、select( event, ui )を使えばよい。
let words = [
{
label: "テスト",
url: "https://www.google.com/search?q=テスト"
}
select: function (event, ui) {
location.href = ui.item.url;
return false;
}
色々経て・・・
今後はajaxを用いたソース取得を実施したい。
参考URL:
Author And Source
この問題について(【JQuery UI】AutoCompleteによるサジェスト機能の実装), 我々は、より多くの情報をここで見つけました https://zenn.dev/t_takaji/articles/f7cf46be75544b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol