Vee-Validate之间和data_between之间不使用对象表示法

时间:2018-08-09 19:26:37

标签: vuejs2 vee-validate

我正在尝试使用如下所示的对象表示法来验证几年之间的数据:

<div class="form-group">
    <label for="construction-year">Construction Year</label>
    <input v-validate="validations.building.construction_year" data-vv-as="Construction Year" v-model="construction_year" type="text" id="construction-year" class="form-control" name="construction_year" placeholder="Year" maxlength="4">
    <div v-show="errors.has('construction_year')" id="construction-year-error" class="msg-error text-danger">{{ errors.first('construction_year') }}</div>
</div>

<script>
  data() {
    return {
      validations: {
        building: {
          construction_year: {
            required: true,
            date_format: 'YYYY',
            date_between:`1500,${new Date().getFullYear()}`
          },
          floors_above_ground: {
            required: true,
            between: '1,11',
          },
        }
      },
    }
  },
</script>

但是,我收到的消息是:

The Construction Year must be between 1500,2018 and undefined.

怎么做才是正确的方法?在文档中,未显示对象符号,因此我尝试传递一个字符串,但它也不起作用。当我如上所述使用验证“之间”时,也会发生相同的问题。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当我尝试创建自定义验证作为此错误的解决方法时,我意识到自定义验证器接收的args参数是一个数组。

因此,我尝试使用对象表示法中的介于between和data_between验证的数组,它的工作方式如下。

validations: {
  building: {
    construction_year: {
      required: true,
      date_format: 'YYYY',
      date_between: ['1500', `${new Date().getFullYear()}`],
    },
    floors_above_ground: {
      required: true,
      between: [1, 11],
    },
  }
},

最好在文档中添加此信息。