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

如何阻止v-autocomplete组件在按下回车键时刷新页面?

这问题我之前开发Vuetify项目时也碰到过!大概率是你的v-autocomplete组件放在<form>标签内部了——浏览器的默认行为会把输入框里的回车判定为表单提交指令,直接触发页面刷新。给你几个实用的解决办法:

解决方法

方法1:全局拦截表单默认提交(推荐)

如果你的整个表单不需要通过回车来触发提交操作,直接给<form>标签加上@submit.prevent修饰符就能彻底解决问题:

<form @submit.prevent>
  <v-autocomplete
    v-model="selectedValue"
    :items="optionsList"
    placeholder="请选择..."
  />
  <!-- 其他表单控件 -->
</form>

这个方式一劳永逸,能避免所有表单内控件回车触发的意外刷新。

方法2:单独处理v-autocomplete的回车事件

要是你还需要表单里其他控件能正常触发回车提交,那就只针对v-autocomplete做拦截,给它添加@keydown.enter.prevent事件修饰符:

<v-autocomplete
  v-model="selectedValue"
  :items="optionsList"
  placeholder="请选择..."
  @keydown.enter.prevent
/>

这样设置后,在这个组件内按回车只会触发它本身的下拉项选中逻辑,不会触发表单提交导致页面刷新,同时不影响其他控件的正常回车行为。

额外排查提示

如果你的v-autocomplete根本没放在<form>里却还是出现刷新问题,那得检查下页面里有没有全局绑定的键盘事件监听,说不定是其他代码拦截了回车事件并触发了刷新操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:38:09