当前位置:首页 > 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
分享给朋友:

相关文章

vue如何实现单选

vue如何实现单选

Vue 实现单选的方法 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定到同一个变量,确保同一时间只有一个…

vue实现单选按钮

vue实现单选按钮

使用 v-model 绑定单选按钮 在 Vue 中,可以通过 v-model 实现单选按钮的数据绑定。单选按钮组需要共享同一个 v-model 绑定的变量,并通过 value 属性区分选项。 &l…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 j…