最近的一个项目有一个表单联动验证需求,如上图所示。形式必须满足佣金,不能大于价格。先写验证函数和数据规则letvalidatePrice=(rule,value,callback)=>{if(!value){callback(newError('请输入价格'));}elseif(value*1{if(!value){callback(newError('请输入佣金'));}elseif(value*1>this.productForm.price*1){callback(newError('佣金不能大于价格'));}else{回调();}}rules:{price:[{validator:validatePrice,trigger:'blur'}],brokerage:[{validator:validateBrokerage,trigger:'blur'}],},普通验证没有问题,但是会有成为一个问题。当输入的价格大于佣金时,佣金的验证将不响应。解决方案是当佣金大于价格时,使用watch监听并重新验证表单。productForm是一个对象。必须深度监控(deep:true)watch:{productForm:{handler(n,o){if(n.brokerage>n.price){this.$refs.productForm.validateField(['price','brokerage'],(v)=>{控制台.log(v)})}else{this.$refs.productForm.clearValidate(['price','brokerage'])}},deep:true}},完美解决!