当前位置:首页 > VUE

vue实现radio

2026-03-27 17:17:27VUE

实现基础 Radio 单选功能

使用 v-model 绑定单选值,通过 value 属性设置选项值。

<template>
  <div>
    <label>
      <input type="radio" v-model="selectedOption" value="option1"> Option 1
    </label>
    <label>
      <input type="radio" v-model="selectedOption" value="option2"> Option 2
    </label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    };
  }
};
</script>

动态渲染 Radio 选项

通过 v-for 动态生成选项列表,适合从接口获取数据。

<template>
  <div>
    <label v-for="option in options" :key="option.value">
      <input type="radio" v-model="selectedOption" :value="option.value"> 
      {{ option.label }}
    </label>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'a', label: 'Option A' },
        { value: 'b', label: 'Option B' }
      ]
    };
  }
};
</script>

使用组件库(如 Element UI)

若使用 Element UI,可直接调用 el-radio 组件简化样式和逻辑。

<template>
  <div>
    <el-radio-group v-model="selectedOption">
      <el-radio label="option1">Option 1</el-radio>
      <el-radio label="option2">Option 2</el-radio>
    </el-radio-group>
    <p>Selected: {{ selectedOption }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    };
  }
};
</script>

自定义 Radio 样式

通过隐藏原生 <input> 并设计 <label> 样式实现自定义外观。

<template>
  <div class="custom-radio">
    <label v-for="option in options" :key="option.value">
      <input 
        type="radio" 
        v-model="selectedOption" 
        :value="option.value"
        class="radio-input"
      >
      <span class="radio-label">{{ option.label }}</span>
    </label>
  </div>
</template>

<style>
.radio-input { display: none; }
.radio-label {
  padding: 8px 16px;
  border: 1px solid #ccc;
  cursor: pointer;
}
.radio-input:checked + .radio-label {
  background: #42b983;
  color: white;
}
</style>

表单验证集成

结合 Vuelidate 或原生验证逻辑,确保必选项已填写。

vue实现radio

<template>
  <div>
    <label>
      <input type="radio" v-model="selectedOption" value="agree" required> 
      I agree
    </label>
    <button @click="submit" :disabled="!selectedOption">Submit</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: ''
    };
  },
  methods: {
    submit() {
      if (this.selectedOption) {
        console.log('Form submitted');
      }
    }
  }
};
</script>

标签: vueradio
分享给朋友:

相关文章

vue树形实现

vue树形实现

Vue 树形组件实现方法 使用递归组件实现树形结构 递归组件是 Vue 中实现树形结构的常见方法。通过组件调用自身的方式,可以轻松构建多层嵌套的树形结构。 <template> &l…

vue 全景实现

vue 全景实现

Vue 全景实现方案 在Vue中实现全景效果,通常需要结合WebGL或第三方库来处理3D场景渲染。以下是几种常见方法: 使用Three.js库 Three.js是一个强大的WebGL库,适合创建3D…

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue scrolltop 实现

vue scrolltop 实现

实现 Vue 中的 scrollTop 在 Vue 中实现滚动到顶部功能可以通过多种方式完成,包括使用原生 JavaScript、Vue 指令或第三方库。以下是几种常见的实现方法: 使用原生 Jav…