从VeeValidate可用规则中,您可以使用oneOf VeeValidate Rules
来验证select<ValidationProvider rules="oneOf:1,2,3" name="number" v-slot="{ errors }">
<select v-model="value">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four (invalid)</option>
</select>
<span>{{ errors[0] }}</span>
</ValidationProvider>
但是我不知道如何使用广播盒
<ValidationProvider rules="oneOf:1,2,3" name="choice" v-slot="{ errors }">
<label>
<input type="radio" value="1" v-model="choice">
One
</label>
<label>
<input type="radio" value="2" v-model="choice">
One
</label>
<label>
<input type="radio" value="3" v-model="choice">
One
</label>
<span>{{ errors[0] }}</span>
</ValidationProvider>
我正在使用nuxt
import { extend } from 'vee-validate';
import { oneOf } from 'vee-validate/dist/rules';
// Add the required rule
extend('oneOf ', {
...oneOf ,
message: 'Choose one'
});
数据和组件
data () {
return {
choice: ''
}
}
components: {
ValidationObserver: ValidationObserver,
ValidationProvider: ValidationProvider
},
VeeValidate可在所有其他输入上使用
答案 0 :(得分:1)
已编辑
我的方法是将ValidationProvider包装在最后一个单选输入周围。像这样:
<label>
<input type="radio" value="1" v-model="choice">
One
</label>
<label>
<input type="radio" value="2" v-model="choice">
Two
</label>
<ValidationProvider rules="oneOf:1,2,3" name="choice" v-slot="{ errors }">
<label>
<input type="radio" value="3" v-model="choice">
Three
</label>
<span>{{ errors[0] }}</span>
</ValidationProvider>
以前,我将validationProvider封装在每个无线电输入周围,但是我发现如果多个validationProvider使用相同的名称,则实际上只有最后一个有效。