select的option的值,获取得到的value值类型,更改前后不一样?

今个改项目的时候,发现个奇怪现象::😂😂 我在option初始显示的时候,得到的seleced是个number类型,但是我单机下拉框更改option的选项之后,得到的值的类型就从number变成了string类型。就很奇怪,折腾我😂😂😂😂😂找了半天问题产生的原因,尝试了各种办法。

 <div class="speed">
              云台速度
              <select v-model="selected" @change="changeSpeed(selected)">
                <option value=1>1</option>
                <option value=2 selected>2</option>
              </select>
            </div>
  // 云台速度
  private selected = 1;
  private changeSpeed(selected: number) {
    this.selected = selected;
    console.log(typeof selected);
    console.log(this.selected);
  }

在这里插入图片描述

方式一:Number() 🎈 直接转化成number类型

首先我看没有报错,就想着强行更改他的类型好了,直接用` this.selected = Number(selected);强行转化成number类型,也是可以实现我的目的。

  private changeSpeed(selected: number) {
    this.selected = Number(selected);  // 直接转化啦
  }

方式二:骚气十足🎈 :value

oh,原来是因为,我上面代码中value没有冒号,说明是字符串,只要给前面加上冒号就行了。所以就算value值是固定的,不是动态的,but在数字类型的时候都要加冒号的。 当然value后面的树,加不加引号都没啥影响。也可以写:value="1" 得到的依然是number。

  <select v-model="selected" @change="changeSpeed(selected)">
        <option :value=1>1</option>   <!-- 加:这个就很骚气 -->
        <option :value=2 selected>2</option> 
  </select>         

🦆🦆🦆🦆
🎈🎈🎈🎈
🎈🎈🎈🎈

ok,问题解决啦。随意操作,得到的都是number啦
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值