博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ele表单验证的数字的坑
阅读量:6904 次
发布时间:2019-06-27

本文共 1029 字,大约阅读时间需要 3 分钟。

ele支持表单验证,对于数字的验证,是这样的

复制代码
addRules: {    mileageStart: [        {
type: 'number', message: '必须为数字值', trigger: 'blur'} ]}复制代码

坑一 要注意数字的验证需要写v-model.number,才会起作用

坑二 出现的问题是,可以输入数字开头的任意字符串(比如1dede), 于是我加了个 type="number",也就是

复制代码

这就不能输入非数字,但是e可以,他会转化成3个0,这不用管了。

但是产品才不会让你这么轻松,比如需要保留小数点后2位。那就用自定义的表单验证吧。

复制代码
// 保留2位小数的验证var checkNumber = (rule, value, callback) => {    var num2 = /^([1-9][\d]{0,}|0)(\.\d{1,2})?$/    value = '' + value    if (isNaN(value) || !(num2.test(value))) {        callback(new Error('请输入数字, 保留2位小数'));    } else {        callback();    }}addRules: {    mileageStart: [        {
validator: checkNumber, trigger: 'blur'} ]}复制代码

这里的num2在console上可以测试,

坑三 需要num2.test(字符串)才会有效果,
num2.test(数字)的反应很奇怪,不能正常进行验证
因为一开始验证4.这个数字是通过的,于是我就加了value = '' + value,转化成了字符串,还是验证通过,
按照这个正则表达式不应该通过呀
坑四 我就打印这个value,发现输入的4.到这里会变成4,那就是v-model.number和type="number"干的好事了,因为都用正则验证了,这里的number自然是不需要了,就去掉,然后这才ok

转载地址:http://tzmdl.baihongyu.com/

你可能感兴趣的文章
SQLite header and source version mismatch
查看>>
H3C EAD开局 认证通过后不进行安全检查排错
查看>>
Linux禁止ping
查看>>
Oracle密码文件学习心得
查看>>
不要只甘于做一个程序员
查看>>
结构型模式之一:适配器模式
查看>>
Socket编程大总结
查看>>
如何增加自己命中没有的福报
查看>>
笔记本电脑连不上无线网怎么办?
查看>>
Shard 分片集群
查看>>
MySQL数据备份和恢复工具大全
查看>>
sql 学习!!!
查看>>
全球最便宜的八核手机 - 小采手机? 吸引眼球!
查看>>
shell练习-对指定目录下的符合条件的文件执行操作
查看>>
SQOOP2 连接 Oracle 数据库为什么会报错?
查看>>
Go by Example: Variables
查看>>
Java语言下ICTCLAS分词系统的bug问题
查看>>
【Windows系统】用户配置文件删除
查看>>
myprintf
查看>>
JQuery之动画与特效
查看>>