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

如何实现两个独立下拉框同步选中相同选项?

实现两个下拉框选项同步选中

核心思路

监听两个下拉框的change事件,当任意一个下拉框的选项发生改变时,将另一个下拉框的选中值设置为当前选中的值即可。

完整实现代码

HTML 部分

<label for="cars1">Choose a car:</label>

<select name="cars" id="cars1">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>


<label for="cars2">Choose a car:</label>

<select name="cars" id="cars2">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>

注:修正了原HTML中label的for属性,使其对应各自下拉框的ID,确保点击标签能正确关联到对应的下拉框。

JavaScript 部分

方法一:单独绑定事件(适合固定两个下拉框的场景)
const cars1 = document.getElementById('cars1');
const cars2 = document.getElementById('cars2');

// 监听cars1的变化,同步到cars2
cars1.addEventListener('change', function() {
  cars2.value = this.value;
});

// 监听cars2的变化,同步到cars1
cars2.addEventListener('change', function() {
  cars1.value = this.value;
});
方法二:批量处理(适合后续可能新增同类下拉框的场景)
const carSelects = document.querySelectorAll('select[name="cars"]');

carSelects.forEach(select => {
  select.addEventListener('change', function() {
    // 遍历所有同类下拉框,将当前值同步给其他下拉框
    carSelects.forEach(otherSelect => {
      if (otherSelect !== this) {
        otherSelect.value = this.value;
      }
    });
  });
});

补充说明

  • 两种方法都能实现任意下拉框选中后,其他下拉框同步选中相同选项的效果。
  • 方法二扩展性更强,后续新增同name属性的下拉框时,无需修改JS代码即可自动支持同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:05:16