You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

v-autocomplete开启multiple时blur事件$event.target.value为空如何解决?

你的临时解决方式不符合规范,问题和正确实现如下:

问题原因

  1. 直接解析DOM innerText的方式高度依赖v-autocomplete的内部渲染结构,只要Vuetify版本迭代调整了组件的DOM层级、chip渲染格式,你的代码就会直接失效。同时如果选项值本身包含换行、空格等特殊字符,或者后续为组件新增图标、插槽等自定义内容,拆分innerText得到的结果会和实际选中值不一致,稳定性极差。
  2. 开启multiple属性后$event.target.value为空是组件的正常设计逻辑:多值模式下v-autocomplete内部的原生input仅用于输入搜索关键词,不会把选中的多值数组同步到原生input的value属性上,所以读取原生target.value自然返回空。

正确实现方式

Vuetify表单组件遵循Vue双向绑定规范,使用v-model代替单向的:value绑定选中值,blur事件触发时直接读取绑定的变量即可,不需要操作原生事件对象。
修正后的模板代码:

<template v-slot:item.fieldName="{ item }">
  <v-autocomplete
    multiple
    small-chips
    v-model="item.fieldName"
    :items="items"
    color="primary"
    @blur="updateItem(item, item.fieldName, 'fieldName')"
  >
  </v-autocomplete>
</template>

如果因为业务逻辑需要保留单向绑定,也可以监听@input(Vuetify 2)或@update:model-value(Vuetify 3)事件实时同步选中值到本地变量,blur时直接读取本地变量即可。

内容的提问来源于stack exchange,提问作者emdou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:15:05