javascript - 按键未触发事件
问题描述
<multiselect v-model="value" :options="websites" label="url" track-by="url" :allow-empty="false" class="header-select mr-3" v-on:keyup.enter="submit"></multiselect>
要求 - 我有可搜索的下拉菜单,最初我不会有任何下拉项目,但是一旦用户输入一个字母,我希望调用一个 api,它会给我一个以该字母开头的下拉项目列表(例如,键入 A 应该返回苹果,蚂蚁...等)
简而言之 - 我需要一个带有下拉菜单的输入字段。(类似于谷歌搜索)
按键事件在多选中不起作用,@change 等事件可用于选择该多选的下拉项,但我希望按键能够工作并触发事件。- https://vue-multiselect.js.org/#sub-events
我使用了一个 npm 包 - https://www.npmjs.com/package/vue-multiselect,https://vue-multiselect.js.org/(我们不能用普通的输入字段来实现这一点吗?按键可以工作那里,但是如何将它与下拉列表结合起来?)
谁能帮我解决这个问题,如果问题出在无法触发按键事件的包上,有人可以为此目的建议另一个包吗?
解决方案
好的,所以我已经检查了该组件的代码库,并且没有 @keydown 事件,因为父级不是输入。它被包裹在一个div中。
更新搜索词时会触发一个事件,可以在此处查看
您要收听的事件是@search-change
例如
<multiselect
v-model="value"
:options="websites"
label="url"
track-by="url"
:allow-empty="false"
class="header-select mr-3"
@search-update="myFunctionThatWillTriggerSomething"
v-on:keyup.enter="submit"/>
但请注意,在调用事件时触发您的 api 调用search-update
会向您的 api 发送垃圾邮件。你会想看看去抖动它。
推荐阅读
- javascript - 如何在 React 中动态地将新属性添加到具有状态值的文件对象
- python - Gunicorn,Django 出错:“ModuleNotFoundError:没有名为‘store’的模块”
- jquery - turbolinks:load 事件在本地机器上工作而不是在 Heroku 上
- python - 如何将多个二维数组作为输入传递给 tensorflow 服务 api?
- nestjs - Nestjs Schedule构建不间断的cron运行
- ruby-on-rails - ActiveRecord 错误,我如何找出更改消息的语言环境路径?
- javascript - 如何在获取 api 到 spring api 的登录请求上加密密码?
- swift - Agora SwiftUI OpenLive 集成问题
- c++ - 为什么链接器正在寻找不需要的库
- python - 使用 Python 和 OpenCV 改善图像偏斜