[vue][iView]基于iView的async-validator在表单项[input]中自定义验证number无效的解决方法

问题原因

按照iView的设计,对于数字的输入和获取应该使用的组件是而不是


所以使用时,默认输入的值类型只能是string。如果使用:

   var descriptor = {
     input_num : { required: true, type: 'integer', message: '不能为空', trigger: 'blur' },
   }

理论上是无法起效的。

解决方法


解决方法是使用transform函数,如:

<FormItem label="折扣" prop="DISCOUNT">
	<Input type="text" v-model="formItem.DISCOUNT" placeholder="请输入商品折扣...">Input>
FormItem>
ruleValidate:{
	DISCOUNT:[
		{ required: true, message: '折扣不能为空', trigger: 'blur' },
		{ type: 'integer', min:0, max:100, message: '折扣值应当介于0~100之间的整数', 
			trigger: 'blur', transform:(value) => Number(value) }
		],
}

你可能感兴趣的:(前端,JavaScript,Node.js,坑·记录)