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

Posted

技术标签:

【中文标题】选择下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?【英文标题】:How to clear v-autocomplete (multiple) search input after selecting the checkbox in the drop-down list? 【发布时间】:2019-09-12 11:40:11 【问题描述】:

我有多个来自 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)
    
  
)

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

【问题讨论】:

【参考方案1】:

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

watch: 
  select() 
    this.search = ''
  

或对其中一个事件做出反应:&lt;v-autocomplete @input="search = ''"&lt;v-autocomplete @change="search = ''"


关注select,因为v-model 值(&lt;v-autocomplete v-model="select"),更改this.search 因为search-input.sync 值(:search-input.sync="search")。

【讨论】:

谢谢!!!我将 this.search = ' ' 添加到 @change 事件中,它按我的预期工作。 在我的情况下,我必须使用$nextTick,否则它将无法工作。 以防万一其他人尝试,我将搜索设置为null,但它不起作用。必须为空字符串。

以上是关于选择下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?的主要内容,如果未能解决你的问题,请参考以下文章

delphi 7 DBGrid 实现下拉选择后更新

easyui中如何设置下拉列表框只能选择,列表框内不能输入,

easyui中如何设置下拉列表框只能选择,列表框内不能输入,

从自动完成下拉列表中未选择任何选项时如何清除 mat- 自动完成

JQuery选择下拉列表中最接近的tr选择[重复]

html如何做下拉的可多选的复选框列表