先贴代码(可用代码)
<!-- 我这里的项目用的是element -->
<el-form-item label="排序" prop="sort" :rules="[
{required: true, message: '排序不能为空', trigger: 'blur'},
{type: 'number', message: '排序号码必须为数字', trigger: 'change'}]">
<el-input placeholder="请输入排序" v-model.number="form.sort" />
</el-form-item>
1.element的input的数字类型校验需要把v-model换成v-model.number去绑定input的值,这样才能把绑定值转换成数字。
2.也是我一开始在校验时遇到的问题,v-model绑定的属性名最好跟prop的值一样。
3.写到这里看似没有问题了,但是!出现了:我在更新表单数据的时候,这个sort没改,但保存失败,校验提示我填的不是数字。
需要说明一下,我用的是MySQL数据库,这个sort在数据库中是用Bigint存的,java实体类里面用的是Long
因为新增数据或者我修改这个sort字段的时候都没有问题,只有在一开始初始化from表单(且有旧数据的时候)才报错,很显然是这个绑定的数据有问题。然后我把数据库和实体类里面sort这个字段数据类型改成int就能搞正常显示我需要的效果了。