ElementUI 04 - input 输入框中的数字校验

3,756 阅读1分钟

前言

在通过elementUI设计表单时,经常遇到输入框的数字校验操作。如何制定好rule规则对数字(整数和小数)进行校验,有时会是个比较棘手的问题。

问题

在最近工作中出现一个涉及input输入框数字校验的问题,绑定了rule规则,可是无论如何就是不生效。

现象如下:

image.png

rule规则代码片段如下:

detailTableRules: {
  ......
  quantity: [{ required: true, type: 'integer', message: '请输入数字', trigger: 'blur'}]
}

如上所示,针对参数数量,制定了rule规则,但是即使输入了正确的整数,页面还是会有红框的错误提示,令人费解。

如何解决

通过网上搜寻,寻找到了解决方案:需要对数据进行一次转换。 elementUI 框架的表单验证用的async-validator,而async-validator支持一个转换方法,可以在验证前对校验的值做转换,而且这个转换并不会影响到表单绑定的源数据。

修改后的规则代码如下:通过transfrom方法进行数据的转换。

detailTableRules: {
  ......
  quantity: [{ required: true, type: 'integer', message: '请输入数字', trigger: 'blur', transform(value) {
    return Number(value)
  } }]
}

参考文献