javascript - 选中下拉列表中的复选框后,如何清除 v-autocomplete(多个)搜索输入?

标签 javascript vue.js vuejs2 vuetify.js

我有多个来自 Vuetify 的 v-autocomplete 组件。目前,例如,如果在搜索输入中输入“Cali”并选中“California”值,则“Cali”值仍然存在于搜索输入中。我需要清除输入的值。对于当前,关闭下拉列表时清除搜索值,但我需要在选择复选框时清除它。

<v-autocomplete
        v-model="select"
        :loading="loading"
        :items="items"
        :search-input.sync="search"
        cache-items
        class="mx-3"
        flat
        hide-no-data
        hide-details
        label="What state are you from?"
        solo-inverted
        multiple
      ></v-autocomplete>
new Vue({
  el: '#app',
  data () {
    return {
      loading: false,
      items: [],
      search: null,
      select: null,
      states: [
        'Alabama',
        'Alaska',
        'American Samoa',
        'Arizona',
        'Arkansas',
        'California',
        'Colorado',
        'Connecticut',
        'Delaware',
        'District of Columbia',
        'Federated States of Micronesia',
        'Florida',
        'Georgia',
        'Guam',
        'Hawaii',
        'Idaho',
        'Illinois',
        'Indiana',
        'Iowa',
        'Kansas',
        'Kentucky',
        'Louisiana',
        'Maine',
        'Marshall Islands',
        'Maryland',
        'Massachusetts',
        'Michigan',
        'Minnesota',
        'Mississippi',
        'Missouri',
        'Montana',
        'Nebraska',
        'Nevada',
        'New Hampshire',
        'New Jersey',
        'New Mexico',
        'New York',
        'North Carolina',
        'North Dakota',
        'Northern Mariana Islands',
        'Ohio',
        'Oklahoma',
        'Oregon',
        'Palau',
        'Pennsylvania',
        'Puerto Rico',
        'Rhode Island',
        'South Carolina',
        'South Dakota',
        'Tennessee',
        'Texas',
        'Utah',
        'Vermont',
        'Virgin Island',
        'Virginia',
        'Washington',
        'West Virginia',
        'Wisconsin',
        'Wyoming'
      ]
    }
  },
  watch: {
    search (val) {

      val && val !== this.select && this.querySelections(val)
    }
  },
  methods: {
    querySelections (v) {

      this.loading = true
      // Simulated ajax query
      setTimeout(() => {
        this.items = this.states.filter(e => {
          return (e || '').toLowerCase().indexOf((v || '').toLowerCase()) > -1
        })
        this.loading = false
      }, 500)
    }
  }
})

我想在下拉列表中选择值后清除搜索输入中的值。 这是 codepen 示例 - https://codepen.io/anon/pen/ZZMKeL

最佳答案

为选择值添加观察者并重置 search-input :

watch: {
  select() {
    this.search = ''
  }

或者对其中一个事件使用react:
<v-autocomplete @input="search = ''"
或者
<v-autocomplete @change="search = ''"


watch select因为v-model值 ( <v-autocomplete v-model="select" ),并更改
this.search因为search-input.sync值 ( :search-input.sync="search" ).

关于javascript - 选中下拉列表中的复选框后,如何清除 v-autocomplete(多个)搜索输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55808628/

相关文章:

vue.js - Vuetifyjs 2.0 主题不会随着观察者的变化而改变

vue.js - 来自 ElementUI 的 VueJs + Webpack 延迟加载模块

javascript - 如何使用 Vue.js mixins 替换字符串值?

javascript - django ajax表单提交for循环中的多个值

JavaScript 更改字体大小不适用于任何地方

javascript - 如何为包含具有内联 block 显示的对象的 div 设置固定高度和自动宽度?

vue.js - 在 vue.js 应用程序中的何处存储静态内容(例如国家/地区代码)?

javascript - 从字符串动态注册 Vue.js 组件

javascript - 在 angularjs 中创建 html 和 xml 内容的最简洁方法

javascript - 使用 emit 切换变量值