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

vee-validate如何实现每输入一个字符就触发校验,而非仅失焦时生效

解决方法

方案1:针对单个输入框配置触发时机(推荐,灵活度更高)

vee-validate 支持给v-validate指令加修饰符指定校验触发事件,添加.input修饰符即可在每次输入字符时触发校验。

密码输入框修改后代码

<div class='form-group' :class='{"form-group_invalid": errors.has("password") && errors.has("password:min")}'>
  <input
    v-validate.input='"required|min:8|confirmed:password_confirmation"'
    type='password'
    name='password'
    v-model='user.password'
    ref='password'
  />
  <div class='form-group__error'>{{ errors.first('password') }}</div>
</div>

确认密码输入框修改后代码

<div class='form-group' :class='{"form-group_invalid": errors.has("password:confirmed")}'>
  <input
    v-validate.input='"required|confirmed:password"'
    type='password'
    name='password_confirmation'
    v-model='user.passwordConfirmation'
    ref='password_confirmation'
  />
  <div class='form-group__error'>{{ errors.firstByRule('password', 'confirmed') }}</div>
</div>

方案2:全局配置默认触发时机

如果项目内所有表单都需要输入时实时校验,可以在引入VeeValidate时全局配置触发事件:

import VeeValidate from 'vee-validate'
Vue.use(VeeValidate, {
  // 框架默认触发事件为blur|change,新增input事件即可实现实时校验
  events: 'input|blur|change'
})

全局配置后不需要给单个指令加.input修饰符,所有绑定v-validate的输入框都会在输入时自动触发校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:36:00