javascript - Vuetify 文本字段附加槽内的按钮点击

标签 javascript vue.js vuetify.js

我正在尝试使用名为 append 的插槽创建 Vuetify 的 v-text-field ,并且该插槽包含按钮。一切工作正常,除了我的点击点击按钮并聚焦 text-field 和移动打开键盘。

这是我的文本字段组件

<v-text-field
    class="search-input"
    solo
    hide-details
    rounded
    elevation-12
    :placeholder="searchFieldPlaceholder"
    aria-label="Search"
    @input="searchDidChange"
  >
    <slot slot="append" name="end" />
</v-text-field>

这是我的按钮,当我调用文本字段组件时,其中包含 @click.stop

<template v-slot:end>
    <v-btn
      text
      icon
      class="ml-2"
      aria-label="List view"
      @click.stop="gridView = !gridView"
    >
      <v-icon>view_list</v-icon>
    </v-btn>
</template>

我的问题是如何停止按钮在 v-text-field 内传播?我也尝试了@click.native,效果是一样的。文档还提到了 @click:append 但这会破坏我的组件槽逻辑,然后我应该开始使用预定义的 props,这不是我想要的。

最佳答案

从您显示的代码中,您可以跳过所有 slot 用法,并在 append@click:append 中使用

所以你的代码看起来像这样:

<v-text-field
       class="search-input"
       solo
       hide-details
       rounded
       elevation-12
       :placeholder="searchFieldPlaceholder"
       aria-label="Search"
       @input="searchDidChange"
       append-icon="view_list"
       @click:append="gridView = !gridView"
/>

不推荐,但这是一种不可行的方法

更改您的@click 以执行以下操作:

$refs.searchInput.blur(), gridView = !gridView

并将以下内容添加到v-text-field

ref="searchInput"

关于javascript - Vuetify 文本字段附加槽内的按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59422520/

相关文章:

javascript - 如何停止 CKEditor 自动格式化 HTML

javascript - 如何通过用户输入更改 setInterval 中的时间?

javascript - 如何将实例与声明文件中的命名空间合并?

javascript - 未捕获的类型错误 : Cannot read property 'apply' of undefined when trying to call onchange() method in Vuejs

css - 如何在 vuetify 中对我的 View 应用更多填充?

javascript - 正则表达式:在一个字符串中多次检查javascript

javascript - 我的 Vue Hello World 示例显示双括号且未呈现文本

vue.js - 如何在 Vuex 中清除间隔

javascript - 有没有办法使用 VueJs 将列表分成几列?

javascript - 在 vuejs 中提交表单,我应该使用表单标签吗?