質問: ### 前提・実現したいこと jQueryUIのautocomplete機能を用いてinputボックスにサジェスト機能を実装しました。 selectイベントが実行された段階で、inputボックスにlabelの値を表示させているのですが、 キーボードの↑↓キーを使用して候補リストから選択を行った場合に問題が起きています。 ### 発生している問題 ``` 入力確定、候補リスト表示後、キーボードの↑↓キーを使用してフォーカスをあてると、 inputボックスにui.item.valueが表示されてしまう。 このイベントを無効にしたい。 ``` ### 該当のソースコード ``` ( "#send-user-input" ).autocomplete({ minLength: 0, source: list position: { my: 'left bottom-40', }, focus: function(e, ui) { $('#send-user-input').val(""); }, select: function(e, ui) { $('#send-user-input').val(ui.item.label); autoScroll() return false; } }); ``` ### 試したこと focusのfunctionで入力欄内容を削除してみましたが、これはマウス操作でフォーカスを 当てたときのみ正常に動作して、キーボードで操作した場合、このイベントの後に 別のイベントが発生して値を上書きしているようでした。
回答: focusのfunctionにreturn false;を追加したら正しく動作するようになりました。