我正在尝试使用如下所示的对象表示法来验证几年之间的数据:
<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.
怎么做才是正确的方法?在文档中,未显示对象符号,因此我尝试传递一个字符串,但它也不起作用。当我如上所述使用验证“之间”时,也会发生相同的问题。
非常感谢您的帮助。
答案 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],
},
}
},
最好在文档中添加此信息。