ant-design vue 中Select组件allowClear点击没起作用

1、问题重现:

<a-select
 class="keyWord"
  :value="businessObj.item.value"
  @change="businessHandleChange"
  placeholder="请选择"
  :allowClear='true'
>

文档中说明allowClear默认值为false,文档地址:https://www.antdv.com/components/select-cn/
效果图:
在这里插入图片描述
清空按钮出现了,但是点击的时候没有效果,不清空也不报错。(element-ui就没问题)

2、查资料经常看到大佬们的一句话:

antd Select组件的allowClear点击失效 无法清空? 观察发现,由于同时设置了value属性和allowClear属性, 导致无法点击清空按钮清空当前选中项,官方相应的文档并没有提供allowClear点击事件让我们订制自己的事件,因此,解决办法是去除value或者获取到清空按钮的dom元素,增加点击事件.

3、我选择了获取清空按钮的dom元素

1)定义鼠标移入事件,获取到元素

<a-select
 class="keyWord"
  :value="businessObj.item.value"
  @change="businessHandleChange"
  placeholder="请选择"
  :allowClear='true'
  @mouseenter="handleClear"
>

// 鼠标移入获取清空按钮
handleClear(e) {
  console.log(e)
},

2)打印出来的图:
在这里插入图片描述
3)首先在控制台操作鼠标移入看到到清空按钮的元素,如图:
在这里插入图片描述

4)在打印的e事件中一层一层去找到清空按钮元素,最后位置在:e.path[0].children[0].children[1]

4、最终代码:

// 鼠标移入获取清空按钮
handleClear(e) {
  // 获取到dom元素
  let clearDom = e.path[0].children[0].children[1]
  // 添加点击事件
  clearDom.addEventListener( "click", () => {
    // 清空操作
    this.businessObj.item = {}
  })
},

坑,挖不完,填不完,哈哈哈

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Ant Design Vue是一个基于Vue.js的UI组件库,其包含了许多实用的组件。在Ant Design Vue,日期选择器是一个常用的组件之一。如果需要禁用之前的日期,可以通过以下方式实现: 1. 使用disabledDate属性: 在Ant Design Vue,日期选择器组件提供了一个属性叫做disabledDate,可以用来禁用一些日期。具体做法是,在日期选择器添加disabledDate属性,并且将其值设置为一个函数,这个函数会接收一个当前日期的参数,需要在函数对这个参数进行判断,如果符合禁用的条件,则返回true,否则返回false。 2. 结合moment.js使用: 如果需要禁用之前的日期,可以借助moment.js这个第三方库来实现,在Ant Design Vue,日期选择器组件内部使用了moment.js进行日期处理,因此我们可以在disabledDate函数使用moment.js提供的一些方法来判断当前日期是否符合要求。 下面是一个实现禁用之前日期的示例代码: ``` <template> <a-date-picker :disabled-date="disabledDate"></a-date-picker> </template> <script> import moment from 'moment'; // 引入moment.js库 export default { data() { return {}; }, methods: { // 禁用之前的日期 disabledDate(current) { return current && current < moment().endOf('day'); } } }; </script> ``` 以上就是Ant Design Vue日期选择器禁用之前日期的实现方法,通过设置disabledDate属性,可以有效地限制用户选择的日期范围。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值