验证如何动态添加/删除规则

时间:2019-04-18 15:18:29

标签: vue.js vuetify.js

我正在使用vuetify验证,并且我有三个日期字段:发件人发件人。我需要根据以下内容添加必需的规则:

  • 如果选择了月份-不需要发件人发件人
  • 如果选择了发件人发件人中的任何一项-不需要

我尝试了compute()方法,以检查发件人发件人是否为空,但似乎:rules设置了一次,然后没有改变。

computed: {
    monthRules() {
      return this.searchForm.from ? [] : [factory.required()];
    },

这是一些代码

<date-field
  ref="month"
  v-model="searchForm.month"
  :rules="monthRules"
>
</date-field>

<date-field
  ref="from"
  v-model="searchForm.from"
  @input="validateTo"
  :rules="fromRules"
>
</date-field>

<date-field
  ref="to"
  v-model="searchForm.to"
  :rules="toRules"
>
</date-field>

monthRules: [factory.required()],
fromRules: [],
toRules: [
  *some rules from factory here*
],

工厂

required() {
    return v => !!v || 'Field is required';
},

是否可以动态构建规则数组?还是有更好的方法

1 个答案:

答案 0 :(得分:0)

我对 Vuetify 规则不是很清楚,因为我认为最好使用像 vee-validate 这样的专门库,它已经有大量的预定义规则,对于这样的事情。至于动态规则,最好的方法是使用对象绑定,如下所示:

:rules="{
  required: requiredBool
 }"

其中 requireBool 是您的计算属性。同样,正如我所说的,我对 Vuetify rules 不是很熟悉,但这对 Vee-Validate 很有用。