前言

本文使用了lable关联选中,实际使用中如果不需要,直接将循环语句 v-for 写在 input标签上就可以

1、使用v-for循环的radio单选框,需要注意的是,这是使用的是 change 事件,而不是 click 点击事件

<template>
  <div>
    <label v-for="(item, index) in radioData" :key="index">
      <input
        type="radio"
        v-model="radioVal"
        :value="item.value"
        @change="getRadioVal"
      />
      {{ item.value }}
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      radioData: [
        { value: 'A' },
        { value: 'B' },
        { value: 'C' }
      ],
      radioVal: 'A' // 用于设置默认选中项
    };
  },
  methods: {
    getRadioVal() {
      console.log(this.radioVal);
    }
  }
};
</script>

2、不使用v-for循环的radio单选框,需要注意的是,这是使用的是 change 事件,而不是 click 点击事件

<template>
  <div>
    <label><input v-model="radioVal" type="radio" value="1" @change="getRadioVal">1</label>
    <label><input v-model="radioVal" type="radio" value="2" @change="getRadioVal">2</label>
    <label><input v-model="radioVal" type="radio" value="3" @change="getRadioVal">3</label>
  </div>
</template>
<script>
export default {
  data() {
    return {
      radioVal: 1 // 用于设置默认选中项
    };
  },
  methods: {
    getRadioVal() { 
      console.log(this.radioVal);
    }
  }
};
</script>

点击每一项获得当前项的value值,快去试试吧!

Logo

Vue社区为您提供最前沿的新闻资讯和知识内容

更多推荐