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

Vue中如何关闭type="datetime-local"类型的选择器?

解决Vue中datetime-local选择器完成选择后自动关闭的问题

浏览器原生的datetime-local输入框没有提供直接关闭选择器的API,但可以通过让输入框失去焦点(调用blur()方法)来触发选择器关闭,结合change事件就能实现需求。

选项式API(Vue2/Vue3兼容写法)

<template>
  <input 
    type="datetime-local" 
    v-model="selectedDatetime"
    @change="closePicker"
  >
</template>

<script>
export default {
  data() {
    return {
      selectedDatetime: ''
    }
  },
  methods: {
    closePicker(event) {
      // 触发输入框失焦,强制关闭选择器
      event.target.blur()
    }
  }
}
</script>

组合式API(Vue3)

<template>
  <input 
    type="datetime-local" 
    v-model="selectedDatetime"
    @change="closePicker"
  >
</template>

<script setup>
import { ref } from 'vue'
const selectedDatetime = ref('')

const closePicker = (event) => {
  event.target.blur()
}
</script>

补充说明

  • change事件会在用户完成选择(点击选择器确认按钮或选定日期时间后)触发,此时调用blur()让输入框失焦,浏览器会自动关闭原生选择器。
  • 部分浏览器可能在change触发时已自动关闭选择器,但这个方法能保证在所有主流浏览器中生效。
  • 如果用户手动输入日期时间而非通过选择器选择,change事件同样会在值确认后触发,此时失焦也符合“完成输入后关闭”的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 12:05:42