vue element-ui el-date-picker日期选择器 清空按钮之坑

watch监听选择器 点击清空按钮时会报错

在这里插入图片描述
这是因为Element-ui中没有内置清除按钮的回调函数, 当点击清除按钮的时候,value会被设置为null。
解决方法:在下次调用之前,为value重新赋值,错误解决,

	      if (!newData) {
	        newData = []
	      }

然后在为value重新赋值前把开始日期和结束日期绑定的值置为空,就成功清除了:

watch: {
	    time_value(newData) {
	      if (!newData) {
	        newData = []
	       this.startCreateTime = '' //开始日期
	     this.endCreateTime = '' //结束日期
	     
	      }
	      //日期格式转换
	      this.startCreateTime = this.$moment(newData[0]).format(
	        'YYYY-MM-DD HH:mm:ss'
	      )
	      this.endCreateTime = this.$moment(newData[1]).format(
	        'YYYY-MM-DD HH:mm:ss'
	      )
	      this.current = 1
	      this.initData()
	    },
 },

下一篇:vue element-ui TimePicker时间选择器组件的回显与格式转换

### Vue Element UI `el-date-picker` 组件重置表单不清空日期解决方案 当使用Element UI中的`el-date-picker`组件时,如果遇到重置表单无法清除已选日期的情况,可以通过监听特定事件并手动设置绑定的数据模型来实现清空操作。 对于`el-date-picker`组件而言,并不存在专门用于处理清除逻辑的回调函数[^2]。因此,在实际开发过程中,通常会利用`input`或`change`事件来进行相应控制。具体来说: - 可以为表单添加一个自定义方法用于执行重置动作; - 在该方法内部不仅调用框架自带的resetFields()接口,还需额外针对日期选择器单独设定其v-model对应的变量为空值; 下面是一个具体的例子展示如何做到这一点: ```html <template> <div id="app"> <!-- 表单项 --> <el-form ref="formRef" :model="formData"> <el-form-item label="时间段选择"> 开始时间:<el-date-picker v-model="formData.startTime" type="date"></el-date-picker><br/> 结束时间:<el-date-picker v-model="formData.endTime" type="date"></el-date-picker> </el-form-item> <!-- 提交按钮 --> <button @click.prevent="handleReset">重置</button> </el-form> </div> </template> <script> export default { data(){ return{ formData:{ startTime: '', endTime:'' } }; }, methods: { handleReset () { this.$refs.formRef.resetFields(); // 调用内置重置功能 // 手动将日期字段设为空字符串以确保完全清除显示内容 Object.assign(this.formData, {startTime:'', endTime:''}); console.log('Form has been reset'); } } } </script> ``` 通过上述方式可以有效解决因缺少专用清除机制而导致的问题,从而达到预期效果——即点击“重置”后能够正常清理掉之前所填入的信息,包括由`el-date-picker`控件选定的时间范围。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值