当前位置: 首页 > article >正文

ant design vue TimePicker时间选择器不点击确认也可以设置值

文章目录

  • 前言
  • 一、背景
  • 二、操作步骤
    • 1.复现前的准备工作
      • (1)vue版本和ant design vue 版本
      • (2)任意ant design vue TimePicker的demo
    • 2.解决问题
      • (1)使用change时间(无效)
      • (2)使用blue(失去焦点)
    • 3.图示逻辑
  • 总结


前言

提示:


一、背景

  • 背景:
    • Ant design vue + vue3的项目,每次选择时间,都需要点击确认后才会赋值,不然会重置为之前的。而文档中并没有关系不点击确认就可以获取值的方式:例如默认为空,点击时间为00:05,点击确定,值为00:05,点击其他地方,值重置为空。
      • 技术定位:初级

二、操作步骤

1.复现前的准备工作

(1)vue版本和ant design vue 版本

"ant-design-vue": "^3.2.20",
"vue": "^3.2.33",

(2)任意ant design vue TimePicker的demo

代码就不贴了,官网上都有

2.解决问题

(1)使用change时间(无效)

当你加伤change事件的时候,你选中值会发现,change事件没有触发,有且只有点击【确定】按钮的时候会触发change事件,这和我们的需求有冲突,所以首先排除了

(2)使用blue(失去焦点)


<template>
  <div id="accelerationConfigId" @click.stop="clickHandle">
    <FormItem name="time" label="调度周期" class="w-45%" :autoLink="false">
      <TimePicker v-model:value="formData.time" :showNow="false" id="timePickerId"
        :inputReadOnly="true" format="HH:mm" value-format="HH:mm" :open="timeOpen" :hideDisabledOptions="true"
        placeholder="时间" @blur="(e: Event) => handleBlur(e)" @click.stop="timeClick" />
    </FormItem>
  </div>
</template>

<script setup lang="ts">
  // 监听点击事件
  function clickHandle() {
    if (timeOpen.value) {
      blurTimePicker()
    }
  }
  const handleBlur = (e: Event) => {
    blurTimePicker()
    e.preventDefault();
  }
  const timeOpen = ref(false)
  function blurTimePicker() {
    const timePickerDom = document.getElementById('timePickerId')
    const inputValue = timePickerDom ? (timePickerDom as HTMLInputElement).value : ''
    timeOpen.value = false
    formData.time = inputValue
  }

  function timeClick() {
    timeOpen.value = true
  }
</script>

3.图示逻辑

在这里插入图片描述


总结

ant design vue TimePicker 不支持change事件设置值,只能在失去焦点的时候间接获取的处理方式,注意需要点点击点时候加上禁止冒泡


http://www.kler.cn/news/359480.html

相关文章:

  • 破局汽车基础软件发展丨昂辉科技亮相2024芜湖新能源汽车零部件和后市场生态博览会
  • 【C++STL】list的基本介绍与使用方式
  • Django学习-静态文件
  • 【机器学习】简单易懂的聚类算法K-Means
  • 每日回顾:简单用C写 选择排序、堆排序
  • 基于Android Studio购物商城app+web端实现(前后端分离)一
  • Thread类的基本用用法
  • 基于Multisim旗升降自动控制系统电路(含仿真和报告)
  • python全栈开发《47.索引与切片之字符串》
  • Django-应用及分布式路由
  • 深入解析JavaScript中的箭头函数及其在React中的应用(箭头函数与传统函数的区别、如何在不同上下文中使用箭头函数)
  • 【前端】如何制作自己的网站(7)
  • echarts设置x轴中文垂直显示,x轴滚动条
  • 随机数生成
  • React 学习计划
  • Modelsim:LPDDR5仿真(含美光仿真模型官方svvcs代码)
  • (linux驱动学习 - 12). IIC 驱动实验
  • .net framework 3.5sp1安装错误进度条不动怎么办
  • 【Python技术】利用akshare定时获取股票实时价,低于5日线钉钉通知报警
  • “第15代”英特尔CPU来袭!命名全面变更,速览