質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3365閲覧

jQueryUI Autocompleteの候補の表示件数を変更したいです。

toyamal

総合スコア28

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/05/13 00:06

編集2021/05/13 00:09

前提・実現したいこと

jQuery Autocompleteの候補の個数を10個に変更をする方法はあるんでしょうか?
インデックスが多くなるにつれて候補が増えてしまうので、個数を制限したいです。

sliceを使って制限していたのですが、全データから候補を10個表示は出来たのですが、サジェストも10個の中でしか行われません。
実現したいイメージとしましては、
全データを取得→表示件数は10個→文字が入力された際は全データの中から上位10個を表示する。
という動きを実装したいです。

助言よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

asyncGet("api/auth/" + item).then(function (data) { if (data.status) {           //全データ取得 const arr = data.result.filter(function(value){ return value.code !== ""; });           //sliceで10件のみ表示 const target = arr.slice(0,10); const suggest = target.map((x) => { return {'label' : x.itemName.toString() , 'value' :x.code.toString()}; }); $('#suggest').autocomplete({ minLength : 0, delay : 0, source: suggest } }).focus(function(){ $(this).val(""); $(this).autocomplete("search","") }) } }).catch(function (error) { console.log(error); });

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のようにresponseの部分を追加すると、どうなりますか?
提示されているソースの //sliceで10件のみ表示 は削除してください。

JavaScript

1$('#suggest').autocomplete({ 2 minLength : 0, 3 delay : 0, 4 source: suggest, 5 response: (event, ui) => { 6 if (ui.content.length > 10) { 7 ui.content.splice(10, ui.content.length); 8 } 9 } 10}

投稿2021/05/13 01:26

編集2021/05/13 02:04
root_jp

総合スコア4666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toyamal

2021/05/13 01:36

回答ありがとうございます! 確認しましたところ、10件以上表示されてしまっております・・
root_jp

2021/05/13 02:07

動くサンプル用意してみましたが、こういう動きではないんですか? https://codepen.io/root_jp/pen/oNZbPja このサンプルは表示件数は5件にしています。 Aと入力すると、該当するデータは10件ありますが5件しか表示されません。 Bと入力しても同等です。
toyamal

2021/05/13 03:42

ありがとうございます! 解決することが出来ました! 大変助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問