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>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。