当前位置:首页 > 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 伪类控制样式变化。

js 实现单选

<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,适合需要动态生成选项的场景。

js 实现单选

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 实现数据双向绑定,简化单选逻辑。

<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实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…