Vue.js Vuetify-如何正确验证一组复选框

Vue.js Vuetify-如何正确验证一组复选框,vue.js,vuejs2,vuetify.js,Vue.js,Vuejs2,Vuetify.js,是否可以以与收音机组相同的方式在Vuetify组中验证复选框?我试图“整体”验证它们,但每个复选框都是单独验证的。如何强制检查至少一个复选框字段 像这样的东西怎么样 笔在这里: {{selected}} 提交 请至少选择一个复选框。 接近 数据:()=>({ // snackbar:false, 已选:[“约翰”], }), 方法:{ 提交(){ 如果(this.selected.length>0){ this.snackbar=true; } } } 尝试以下方法: 我知道这对于answa

是否可以以与收音机组相同的方式在Vuetify组中验证复选框?我试图“整体”验证它们,但每个复选框都是单独验证的。如何强制检查至少一个复选框字段


像这样的东西怎么样

笔在这里:


{{selected}}

提交 请至少选择一个复选框。 接近 数据:()=>({ // snackbar:false, 已选:[“约翰”], }), 方法:{ 提交(){ 如果(this.selected.length>0){ this.snackbar=true; } } }
尝试以下方法:


我知道这对于answare这个线程来说已经太晚了,但是它可能会帮助那些想要验证数组中复选框的人


如何工作? 这个概念很简单,必须在数组中至少选择一个复选框


这里index==0,我想显示第一个元素的错误,所以我应用了:rules 然后我想检查至少一个选中的元素,所以我决定用alllow_validate在给定的方法中编写条件:false。然后在计算机中执行验证

  <div  v-for="(checkbox , index) in yourarray" :key="index">
      <v-checkbox v-if="index==0" @change="Checkboxlist()" :rules="checkbox_rules" label="iam first checkbox" :value="checkbox.cv"></v-checkbox>
     <v-checkbox v-else  @change="Checkboxlist()" label="checkboxfinite" :value="checkbox.checkbox_value"></v-checkbox>

    </div>
3.方法

  methods: {
  Checkboxlist(){

 this.$nextTick(() => {

    var checked=document.querySelectorAll('input[type=checkbox]:checked');

var store="";
var firstelement=false;

    for(var i=0;i<checked.length;i++){

     if(checked[i].checked==true)
     {
 this.alllow_validate=true;
if(!firstelement){
   firstelement=true;

   store=checked[i].value;

 }else{
store+=','+checked[i].value;

 this.alllow_validate=false;
 }
         }
    }

//selected checkbox value 
 alert(store);    
    })
}   
  },

显示一些代码。现在很难理解你的意思。我刚刚补充了一些解释。我的问题是:如何强制只检查组中的一个字段?我不想对每个字段单独编码:/谢谢你的回答,蔡斯。它是以Vue方式验证的,但不是以Vuetify方式验证的。Vuetify使用一系列函数来验证表单。就像这里一样,我想知道是否有可能以这种方式验证所需的复选框的数量,以在字段有错误时实现红色边框和抖动效果,
data(){
     yourarray:[{cv:'checkbox1'},{cv:'checkbox2'},{cv:'checkbox3'}],
    alllow_validate:false,
}
  methods: {
  Checkboxlist(){

 this.$nextTick(() => {

    var checked=document.querySelectorAll('input[type=checkbox]:checked');

var store="";
var firstelement=false;

    for(var i=0;i<checked.length;i++){

     if(checked[i].checked==true)
     {
 this.alllow_validate=true;
if(!firstelement){
   firstelement=true;

   store=checked[i].value;

 }else{
store+=','+checked[i].value;

 this.alllow_validate=false;
 }
         }
    }

//selected checkbox value 
 alert(store);    
    })
}   
  },
computed:{

checkbox_rules(){

const rules=[];

if(this.alllow_validate){

// alert("rule");
 const rule=
           v => (!!v) || "Field is required";
            rules.push(rule)



}
return rules;


}