当前位置:首页 > VUE

vue 实现单选

2026-01-07 19:54:24VUE

使用 v-model 绑定单选值

在 Vue 中,可以通过 v-model 绑定单选按钮的值。定义一个响应式数据(如 selectedOption),并将其与单选按钮的 value 属性关联。

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

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

动态生成单选按钮

通过 v-for 动态渲染单选按钮列表,适合选项从接口或数组中获取的场景。

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

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { id: 'opt1', value: 'value1', label: 'Label 1' },
        { id: 'opt2', value: 'value2', label: 'Label 2' },
      ],
    };
  },
};
</script>

处理单选按钮事件

监听 change 事件,在选中时执行自定义逻辑(如提交表单或触发方法)。

<template>
  <div>
    <input 
      type="radio" 
      value="Event Option" 
      v-model="selectedOption"
      @change="handleRadioChange"
    />
    <label>Event Option</label>
  </div>
</template>

<script>
export default {
  methods: {
    handleRadioChange() {
      console.log('Selected:', this.selectedOption);
      // 执行其他操作
    },
  },
};
</script>

使用组件库实现单选

若使用 UI 库(如 Element UI、Vuetify),可直接调用封装好的单选组件。

Element UI 示例:

<template>
  <el-radio-group v-model="selectedOption">
    <el-radio label="Option 1"></el-radio>
    <el-radio label="Option 2"></el-radio>
  </el-radio-group>
</template>

Vuetify 示例:

<template>
  <v-radio-group v-model="selectedOption">
    <v-radio label="Option A" value="A"></v-radio>
    <v-radio label="Option B" value="B"></v-radio>
  </v-radio-group>
</template>

验证单选选项

结合 Vue 的表单验证库(如 VeeValidate),确保用户必须选择一项。

vue 实现单选

<template>
  <form @submit.prevent="submitForm">
    <div v-for="option in options" :key="option.id">
      <input 
        type="radio" 
        :id="option.id" 
        :value="option.value" 
        v-model="selectedOption" 
        name="radioGroup"
        v-validate="'required'"
      />
      <label :for="option.id">{{ option.label }}</label>
    </div>
    <span v-if="errors.has('radioGroup')">必须选择一项</span>
    <button type="submit">提交</button>
  </form>
</template>

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [/* 选项数据 */],
    };
  },
  methods: {
    submitForm() {
      this.$validator.validate().then(valid => {
        if (valid) {
          // 提交逻辑
        }
      });
    },
  },
};
</script>

标签: 单选vue
分享给朋友:

相关文章

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖拽…

实现 vue 框架

实现 vue 框架

Vue 框架的基本实现 Vue 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现 Vue 框架的基本步骤和核心概念。 核心概念 响应式数据绑定 Vue 的核心特性之一是响应式数…

vue 实现分屏

vue 实现分屏

Vue 实现分屏的方法 使用 CSS Flexbox 或 Grid 布局 通过 CSS Flexbox 或 Grid 布局可以轻松实现分屏效果。在 Vue 组件中定义两个或多个区域,并使用 CSS 控…

vue实现hovuer

vue实现hovuer

Vue 实现 Hover 效果 在 Vue 中实现 hover 效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 直接控制 通过 :hover 伪类实现,无需额外的 JavaScrip…

vue实现打印

vue实现打印

使用Vue实现打印功能 在Vue项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用window.print() 这种方法适用于打印整个页面或特定区域的内容。 // 在Vu…

vue怎么实现onclick

vue怎么实现onclick

在Vue中实现点击事件(类似原生onclick)可以通过多种方式完成,以下是常见方法: 使用 v-on 指令 Vue提供了v-on指令绑定DOM事件,简写为@。例如绑定点击事件: <butt…