0

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

<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.

正确的方法是如何做到的?在文档中,它没有显示对象表示法,所以我尝试传递一个字符串,但它也不起作用。当我使用上面所示的验证“之间”时,也会发生同样的问题。

我在这里先向您的帮助表示感谢。

4

1 回答 1

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],
    },
  }
},

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

于 2018-08-09T21:42:08.400 回答