我正在使用VeeValidate对使用Vue.js制作的表单进行验证。我将它设置为显示与发生错误的输入有关的错误消息的范围。以编程方式附加验证规则以形成字段
<div class="input-group">
<input type="date"
class="form-control"
name="panelData.AnalysisDate"
data-vv-as="Analysis Date"
v-model="panelData.AnalysisDate"
v-validate="'required|date_format:YYYY-MM-DD'">
</div>
<span v-show="errors.has('panelData.AnalysisDate')" class="redText">{{errors.first('panelData.AnalysisDate')}}</span>
所有的输入都设置为相同的方式,他们都工作正常。 当我尝试将验证规则添加到上述输入中时,会出现问题,该输入需要使用从今天的日期起的一年作为最大值的date-between规则。
date_between:{min,max}
的v-validate
属性采用在由|
delimted验证规则的字符串。有一种方法可以通过自动附加到Vue实例的验证器实例动态添加规则。
$validator.attach({field}, {rules list}, {options})
我试着做下面的代码中都'created' and 'mounted' life cycle hooks既不产生了我要找的结果。
var today = new Date();
var yearFromToday = new Date(today.getFullYear() + 1, today.getMonth(), today.getDate());
var yearFromTodayStr = yearFromToday.toISOString().substring(0, 10);
//'this' refers to the current view instance
//'panelData' is the name of an object in my component's data object
this.$validator.attach('panelData.AnalysisDate', 'date_between:2001-01-01,' + yearFromTodayStr, {
prettyName: 'Analysis Date'
});
的讨厌的事情是,代码工作,因为如果我使用控制台(铬)来插入我的代码,它给了我想要的结果,一旦一切都在屏幕上呈现。我不确定我是否正在使用正确的生命周期挂钩。
用于连接此,以及如何创建验证提供代码。正如我在这里可以看到http://vee-validate.logaretm.com/api.html#validator有另一种方式来执行'attach'。什么是'this。$ validator'?您使用的是什么钩子 - 一个用于指令或一个用于组件? –