当前位置:首页 > JavaScript

js 实现单选

2026-02-02 09:32:51JavaScript

使用原生 JavaScript 实现单选

通过 document.querySelectordocument.querySelectorAll 获取单选按钮组,监听点击事件,手动切换选中状态。

const radioButtons = document.querySelectorAll('input[type="radio"]');
radioButtons.forEach(button => {
  button.addEventListener('click', function() {
    radioButtons.forEach(btn => btn.checked = false);
    this.checked = true;
  });
});

通过 CSS 关联 label 实现

将单选按钮隐藏,通过关联的 <label> 触发选中状态,利用 CSS 伪类控制样式变化。

<input type="radio" id="option1" name="group" class="visually-hidden">
<label for="option1">选项1</label>

<input type="radio" id="option2" name="group" class="visually-hidden">
<label for="option2">选项2</label>

<style>
.visually-hidden { position: absolute; opacity: 0; }
label { 
  padding: 8px 12px;
  border: 1px solid #ddd;
  cursor: pointer;
}
input:checked + label {
  background-color: #007bff;
  color: white;
}
</style>

动态生成单选组

通过 JavaScript 动态创建单选按钮并插入 DOM,适合需要动态生成选项的场景。

const options = ['红色', '绿色', '蓝色'];
const container = document.getElementById('radio-container');

options.forEach((text, index) => {
  const radioId = `option-${index}`;
  const radio = document.createElement('input');
  radio.type = 'radio';
  radio.id = radioId;
  radio.name = 'color-group';

  const label = document.createElement('label');
  label.htmlFor = radioId;
  label.textContent = text;

  container.appendChild(radio);
  container.appendChild(label);
});

表单提交时获取选中值

监听表单提交事件,通过 FormData 或直接查询选中状态获取单选按钮的值。

document.getElementById('myForm').addEventListener('submit', function(e) {
  e.preventDefault();
  const selectedValue = document.querySelector('input[name="group"]:checked').value;
  console.log('选中值:', selectedValue);
});

与框架结合实现(示例为 Vue)

在 Vue 中使用 v-model 实现数据双向绑定,简化单选逻辑。

js 实现单选

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

<script>
export default {
  data() {
    return {
      selectedOption: '',
      options: [
        { value: 'A', text: '选项A' },
        { value: 'B', text: '选项B' }
      ]
    };
  }
};
</script>

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

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…

vue 实现表格单选

vue 实现表格单选

实现表格单选的基本思路 在Vue中实现表格单选功能,通常需要结合表格组件(如el-table)和数据绑定。核心逻辑是通过点击事件更新当前选中行的唯一标识(如id),并通过:class或:style绑定…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…