You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Radio button的循环式键盘上下箭头切换功能?

自定义Radio按钮键盘导航实现方案

解决思路

监听Radio按钮的键盘按下事件,拦截上下箭头操作,针对propulsion和off这两个选项设置专属跳转逻辑,其他选项仍保留默认的上下切换行为。

原生JavaScript实现代码

// 替换成你的Radio组的name属性值
const RADIO_GROUP_NAME = 'your-radio-group';
const radioButtons = document.querySelectorAll(`input[name="${RADIO_GROUP_NAME}"]`);

radioButtons.forEach(radio => {
  radio.addEventListener('keydown', (event) => {
    // 只处理上下箭头按键
    if (!['ArrowUp', 'ArrowDown'].includes(event.key)) return;

    const currentValue = event.target.value;
    let targetRadio = null;

    // 执行自定义跳转逻辑
    if (currentValue === 'propulsion' && event.key === 'ArrowDown') {
      targetRadio = document.querySelector(`input[name="${RADIO_GROUP_NAME}"][value="off"]`);
    } else if (currentValue === 'off' && event.key === 'ArrowUp') {
      targetRadio = document.querySelector(`input[name="${RADIO_GROUP_NAME}"][value="propulsion"]`);
    }

    // 找到目标按钮后,切换选中状态并聚焦,同时阻止默认行为
    if (targetRadio) {
      event.preventDefault();
      targetRadio.checked = true;
      targetRadio.focus();
    }
  });
});

关键注意点

  • 务必将代码中的your-radio-group替换为实际Radio组的name属性值
  • 确保propulsion和off对应的Radio按钮value属性与代码中的值一致
  • 如果使用React、Vue等前端框架,可将上述逻辑适配为框架的事件绑定方式(比如React的onKeyDown)

内容的提问来源于stack exchange,提问作者Srikanth Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:25:34