iview form校验input输入框number类型

总结一下input数字校验

1、speedLimit: [
          { required: true, message: '请输入。。。',  trigger: 'blur' },
          { validator: isPositiveNum, trigger: 'blur' }
        ],
加上trigger,没有设置type,默认是string,数据类型没法通过校验

2、speedLimit: [
          { required: true, message: '请输入。。。', type: "number", trigger: 'blur' },
          { validator: isPositiveNum, trigger: 'blur' }
        ],
加上type:number,输入非数字, { required: true, message: '请输入。。。', type: "number", trigger: 'blur' },此条校验就无法通过,下一条 { validator: isPositiveNum, trigger: 'blur' }不校验

 3、speedLimit: [
          { required: true, validator: isPositiveNum, trigger: 'blur' }
        ],

isPositiveNum (rule, value, callback) {

  if (value) {

    let val = value.toString()

    if (val == '') {

      callback(new Error('不能为空'));

    } else if (! /(^[1-9]\d*$)|(^\d+\.[0-9]{1,2}$)/.test(value)) {

      callback(new Error('请输入正数,最多输入两位小数'));

    } else callback();

  } else callback(new Error('不能为空'));

采用自定义的校验;在blur状态下执行。不加trigger实时性校验

4、speedLimit: [
          { required: true, message: '请输入。。。' },
          { validator: isPositiveNum }
        ],
每输入一个字符就会校验一次,实时性高。为空时显示'请输入。。。',输入非数字显示'请输入正数,最多输入两位小数'。

综上:校验input不用指定trigger,如果将校验方法抽离出来,建议采用第4种方法,在未输入的时候,方便单独设定请输入的字段。单独校验的时候只校验数据类型即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值