如何验证必须至少设置一个值(非零)的字段之间的值列表
我需要验证是否至少输入了一个字段(例如,总数不为零)
我遇到的问题是,当其中任何一个更改时,validator :: total_cost不会重新评估正在验证的所有字段。
在“ any”输入中键入正确的值需要告诉“所有”其他输入以针对新的计算字段进行重新评估!
任何帮助将不胜感激。
例如(我的桌子要大得多)
V1 V2 V3 V4 V5 Tot
[0] [0] [0] [0] [0] -------- [0] (invalid)
[0] [0] [0] [0] [1] -------- [1] (valid)
[1] [0] [0] [0] [1] -------- [2] (valid)
[0] [0] [1] [0] [1] -------- [3] (valid)
我正在使用的标记
<input type="text" v-model.number="v1" data-vv-as="v1" v-validate="anyValue":name="v1"/>
<input type="text" v-model.number="v1" data-vv-as="v2" v-validate="anyValue":name="v2"/>
<input type="text" v-model.number="v2" data-vv-as="v3" v-validate="anyValue":name="v3"/>
<input type="text" v-model.number="v3" data-vv-as="v4" v-validate="anyValue":name="v4"/>
<input type="text" v-model.number="v4" data-vv-as="v5" v-validate="anyValue":name="v5"/>
AnyValue是一个计算的属性
computed: {
anyValue: function () {
return {
// required: true,
between: [0, 99999999],
decimal: 2,
total_cost: this.totalCost /* THIS IS COMPUTED */
}
},
totalCost: function () {
return this.v1 + this.v2 + this.v3 + this.v4 + this.v5;
}
created: function () {
this.$validator.extend('total_cost', {
vTotalCost:0,
getMessage: function (field) {
return 'At least one value must be supplied';
},
validate: function (value) {
this.vTotalCost = value;
console.log("the value is " + this.vTotalCost);
return this.vTotalCost != 0;
}
});
},