Vue.js Vuetify-如何正确验证一组复选框
是否可以以与收音机组相同的方式在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
像这样的东西怎么样 笔在这里:
{{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;
}