【问题标题】:Vuejs radio buttons checked if v-model is an array如果 v-model 是一个数组,则检查 Vuejs 单选按钮
【发布时间】:2019-01-12 05:19:27
【问题描述】:

如果我的 v-model 是一个数组,我如何检查 v-for 中的单选按钮?

我的数据:

data() {
     return {
         persons: {
             name: [],
             surname: [],
             sex: [],
         }
     }
 }  

还有我的收音机:

<template v-for(person, person_index) in persons>
<div class="switch-sex">
   <input type="radio" name="sex" :id="'male'+person_index" value="male"
   v-model="persons.sex[person_index]">
   <label :for="'male' + person_index">M</label>
   <input type="radio" name="sex" :id="'female' + person_index" 
    value="female" v-model="persons.sex[person_index]">
   <label :for="'female' + person_index">F</label>
</div>
</template>

我需要在 v-for 内的每个人中检查我的第一台收音机(男)

【问题讨论】:

    标签: vue.js radio-button checked v-for v-model


    【解决方案1】:

    如果我没有误解你的问题和你的目标,你为多人做动态表格然后试试这样

    模板

     //n and index used for 0-based looping
    
     <div v-for="(n, index) in noOfPersons" :key="index">
         Person {{ index + 1 }}
         <div class="switch-sex">
            <input type="radio" :name="'sex'+(index+1)"  value="male" v-model="persons[index].sex">
            <label >Male {{index+1}}</label>
         </div>
         <div>
            <input type="radio" :name="'sex'+(index+1)" value="female" v-model="persons[index].sex">
            <label >Female {{index+1}} </label>
         </div>
     </div>
    

    脚本(只是一个显示其检查的示例)

     data() {
        return {
            noOfPersons: 2,
            persons: [
                {name: '', surname: '', sex: 'male'},
                {name: '', surname: '', sex: 'female'},
            ]
        }
    }
    

    对于那些使用 Vuetify.js 的人(与 v-modelv-radio-group 包装器上的方法不同)

     <v-radio-group v-model="persons[index].sex" :mandatory="false">
         <v-radio label="Male" :value="1" color="blue"></v-radio>
         <v-radio label="Female" :value="0" color="blue"></v-radio>
     </v-radio-group>
    

    这是Code Pen

    注意。建议使用binary (0/1) 数据,例如0 用于male1 用于female 或其他数字,例如1/2 Database Storage / ISO 5218 或虚拟变量。 Here's explanation

    【讨论】:

    • 是的,谢谢,它的作品。但是我如何声明人数,如果这个数字是动态的并且我不能像你一样声明“人”,我有人数:[]
    • 这只是一个例子。你的后端是什么?您可以使用 API,例如 Laravel...您可以通过 axios 分配其值...例如 this.persons = response.data
    • 那么,noOfPersons 将是 Object.keys(this.persons).length
    猜你喜欢
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    • 2016-04-24
    • 2018-11-04
    • 2011-10-04
    • 2012-08-24
    相关资源
    最近更新 更多