我创建了一个名为Month的组件,我传递了一些道具:
<template>
<select :id="id" :name="id" :class="extraClasses" :v-validate="{required: req}">
<option v-if="def" selected disabled :value="null">{{def}}</option>
<option v-if="!def" selected disabled :value="null">Month</option>
<option v-for="(month, index) in months" :key="index" :value="pad(index)">{{month}}</option>
</select>
</template>
如果我用以下内容调用它们,它们都能正常工作:
<Month id="dob_month" extraClasses="month" def="Initial month" />
然而,当我尝试通过验证部分时,VeeValidate似乎忽略了它:
<Month id="dob_month" req="true" />
有没有办法可以在不使用消息总线的情况下将验证传递给子节点,这样我就可以在父节点中执行类似的操作:
<fieldset id="dob" :class="{'has-error': errors.has('dob_day') || errors.has('dob_month') || errors.has('dob_year') }">
<legend class="a-required">Date of Birth</legend>
<input type="hidden" id="date_of_birth" name="date_of_birth" />
<select id="dob_day" name="dob_day" v-validate="'required'">
<option selected disabled value="">Day</option>
<option v-for="day in monthDays" :key="day" :value="day">{{day}}</option>
</select>
<Month id="dob_month" req=true />
<Year id="dob_year" req="true" />
</fieldset>
或者我是否无法在父母和孩子之间正确填充/传播错误?
答案 0 :(得分:1)
您无需使用:进行v-validate。它的值已经在vee-validate内部插入。 这样的事情应该起作用:
<select :id="id" :name="id" :class="extraClasses" v-validate="{required: req}">
例如,请参见带有最小规则和局部变量https://codepen.io/aldarund/pen/LrmaKz的该Codepen