select组件绑定的值为数字类型问题

在日常开发中,我们双向绑定的form表单,经常会遇到对数字类型的绑定,但对于v-model 绑定的值,输入数字会自动转成字符串类型。

对于input输入框绑定的值,想要修改为数字类型很简单,只需要使用表单的修饰符就可以。

如下所示:

number可以将绑定的 v-model 改为 number类型

<input v-model.number="age" type="number">

但对于 select 选择框或者 radio 单选框来说,则没有那么友好了。

select option 绑定的 value 是数字,但是 v-model 为 string ,这就会导致正常的数据无法渲染。解决方法如下所示:

使用 :value

<a-form-item label="登录方式" name="type">
                    <a-radio-group v-model:value="type">
                        <a-radio :value="1">密码登录</a-radio>
                        <a-radio :value="2">验证码登录</a-radio>
                    </a-radio-group>
</a-form-item>

这样就可以正常渲染!

若元素属性需要绑定的值为数字时的处理

1.如果直接这样写

<select    v-model='value'>
    <option  value='数字'>...</option>
</select>

这时vue并不会把你写入的数字,解析成数字而是解析成字符串,即使是你写到data中一个变量为数字,再使用。都是如此。

2.解决

如果属性需要是数字时(type=Number).需要在属性值前使用v-bind==> ‘:’属性值 的写法。

具体写法如下

<select    v-model='value'>
    <option  :value='数字'>...</option>
</select>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部