vue.js - Vee 验证如何验证单选按钮

标签 vue.js nuxt.js vee-validate

从 VeeValidate 可用规则中,您可以使用 oneOf VeeValidate Rules 验证选择

<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>
但我不知道如何用 radio 盒做到这一点
<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 适用于所有其他输入

最佳答案

已编辑
我这样做的方法是将 ValidationProvider 包裹在最后一个 radio 输入周围。像这样:

<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 包裹在每个 radio 输入周围,但我发现如果多个validationProviders 使用相同的名称,则只有最后一个实际得到验证。

关于vue.js - Vee 验证如何验证单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63267951/

相关文章:

javascript - 在 Vue.js + Vite.js 中禁用代码拆分( block )

nuxt.js - Nuxt 项目中的 Pug 缩进警告

docker - 部署在Docker容器中的Nginx不会暴露部署在另一个Docker容器中的nuxtjs(502 Bad Gateway)

vee-validate - VeeValidate 3.1 如何在外部文件和每个组件中添加规则

javascript - 使用 JavaScript 的性能数据表

javascript - vue中获取数据属性

javascript - Vue.js:如何在已打开的选项卡中打开外部链接?

vue.js - Nuxt js 上的 vue-awesome-swiper(swiperjs) 不能在生产环境中工作,但可以在开发环境中工作

laravel - VeeValidate 即使使用键也验证不存在的字段错误

javascript - 使用 VeeValidate,我如何查看某个字段是否已被触摸并且是否有效?