vue-design-vue的Select选择器清除内容后为空白,placeholder不显示

问题描述

在使用vue-design-vue的Select选择器时,常常会遇到一个问题:
我们用 placeholder来进行用户提示,但是在我们进行数据提交之后会发现我们选择的内容仍然存在于选择框内,这其实是不符合我们的业务逻辑的,所以就需要进行提交后的清除。
点击前:
在这里插入图片描述

提交后:
在这里插入图片描述

在Select的api内有一个参数
在这里插入图片描述
可以想象:我用v-model进行双向数据绑定,在提交之后把数据重新赋值为空,这样不就可以清除了嘛。

结果:
在这里插入图片描述
好家伙!这直接为空,我的placeholder直接不显示了,到底怎样才能解决这个问题呢?

解决方案

使用选择器:

 <a-select @change="handleChange" placeholder="请选择轨迹类型" v-model="type">
      <a-select-option value="1"></a-select-option>
      <a-select-option value="2"></a-select-option>
 </a-select>

我们在使用的时候只需要加上配置项v-model,主要来控制清除的。

在data里面:

data(){
	return{
		type:undefined,//注意不要使用''空字符串来设定初始值,这样placeholder就不显示了
	}
}

数据提交之后的清除直接改变type的值就行了。

如果选择直接把type的值设置为空:‘’,空串,Select选择器清除内容后为空白,看样子是达到效果了。

但是注意,我们初始页面还知道设置placeholder进行提示操作,现在清除后难道就不需要啦?

空白问题就是我们清除的处理方法不对,设置为空串不是真正意义上的清空:

‘’, 这个串中只有一个元素 就是字符串结束符0

这个时候就需要undefined了:

undefined,一个特殊值,通常用于指示变量尚未赋值

placeholder出现于输入框还未输入内容,空串会占位,而undefined未赋值placeholder就能显示了。

this.type=undefined;//直接把type的值设置为空字符串是没用的,只有赋值为undefined才能实现清除效果

只需要记住,在清空的时候undefined比空串更起作用。

问题解决。

同理:
如果选择器的选项不是自己设置的,是数据驱动的:
在清空的时候也会遇到这样的处理问题,依旧是把值设置为undefined就能解决啦!

这里是飞鱼爱吃米,只授渔,不授鱼!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值