当前位置:首页 > VUE

vue实现input失去焦点

2026-02-22 19:25:28VUE

实现方法

使用 @blur 事件监听器可以轻松实现 input 失去焦点的功能。@blur 是 Vue 中专门用于处理失去焦点事件的指令。

vue实现input失去焦点

<template>
  <input v-model="inputValue" @blur="handleBlur" />
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  },
  methods: {
    handleBlur() {
      console.log('Input 失去焦点')
      // 在这里添加失去焦点后的处理逻辑
    }
  }
}
</script>

使用修饰符

Vue 提供了事件修饰符来简化事件处理。.lazy 修饰符可以将 v-model 的同步行为改为在 change 事件(失去焦点时触发)后同步。

vue实现input失去焦点

<template>
  <input v-model.lazy="inputValue" />
</template>

自定义指令

对于更复杂的需求,可以创建自定义指令来处理失去焦点事件。

<template>
  <input v-focus-blur />
</template>

<script>
export default {
  directives: {
    'focus-blur': {
      inserted(el) {
        el.addEventListener('blur', () => {
          console.log('自定义指令处理失去焦点')
        })
      }
    }
  }
}
</script>

结合验证功能

失去焦点时进行表单验证是常见需求,可以结合 @blur 和验证逻辑实现。

<template>
  <input 
    v-model="email" 
    @blur="validateEmail" 
    :class="{ 'error': emailError }"
  />
  <p v-if="emailError" class="error-message">请输入有效的邮箱地址</p>
</template>

<script>
export default {
  data() {
    return {
      email: '',
      emailError: false
    }
  },
  methods: {
    validateEmail() {
      const re = /\S+@\S+\.\S+/
      this.emailError = !re.test(this.email)
    }
  }
}
</script>

标签: 焦点vue
分享给朋友:

相关文章

vue广告实现

vue广告实现

Vue 广告实现方法 在 Vue 项目中实现广告功能可以通过多种方式完成,具体取决于广告类型和需求。以下是几种常见的实现方法: 使用第三方广告平台 许多广告平台如 Google AdSense、百…

vue 实现关闭

vue 实现关闭

Vue 实现关闭功能的方法 在Vue中实现关闭功能通常涉及组件销毁、模态框隐藏或路由跳转等场景。以下是几种常见实现方式: 销毁当前组件 使用v-if或v-show控制组件显示/隐藏,适用于局部组件:…

computed vue 实现

computed vue 实现

computed 在 Vue 中的基本用法 Vue 的 computed 属性用于声明依赖于其他数据的计算属性。当依赖的数据变化时,计算属性会自动重新计算并缓存结果。 export defaul…

实现vue table

实现vue table

Vue 表格实现方法 基础表格实现 使用 Vue 的 v-for 指令可以快速渲染表格数据。在模板中定义表格结构,通过数据绑定动态生成行和列。 <template> <tabl…

vue实现转盘抽奖

vue实现转盘抽奖

Vue 实现转盘抽奖 基本思路 转盘抽奖的核心是通过 CSS 动画实现旋转效果,Vue 负责控制旋转逻辑和数据绑定。关键点包括转盘扇形区域的绘制、旋转动画的触发与停止、中奖结果的判定。 实现步骤 H…

vue歌词滚动实现

vue歌词滚动实现

实现 Vue 歌词滚动的核心方法 监听当前播放时间 通过 audio 元素的 timeupdate 事件获取当前播放时间,并与歌词时间戳对比。在 Vue 中使用 @timeupdate 绑定事件:…