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

如何在jQuery中使用Select2获取多选下拉框的选中值

解决Select2多选下拉框获取选中值无输出的问题

先明确你代码里的几个核心问题,再给出修正方案:

  • 选项value重复无意义:所有<option>的value都设为"1",既不符合语义,也会导致选中多个选项时获取的结果完全重复,每个选项应该设置唯一且对应语言的标识值(比如FR设为"fr"、Eng设为"en")。
  • DOM加载顺序错误:你的JS代码写在<select>元素之前,此时页面DOM还未渲染出#language元素,$('#language')无法获取到目标节点,调用val()自然没有输出。
  • Select2初始化时机不对:初始化Select2的代码同样需要等待DOM加载完成后再执行。

修正后的完整代码

<!-- 先编写HTML结构 -->
<select id="language" class="form-control" multiple="multiple" data-toggle="select2"> 
    <option value="fr">FR</option>
    <option value="en">Eng</option>
    <option value="es">Es</option>
</select>

<script>
// 等待DOM完全加载后执行JS逻辑
$(document).ready(function() {
    // 初始化Select2组件
    $('#language').select2();
    
    // 监听选中状态变化,实时获取选中值
    $('#language').on('change', function() {
        var selectedValues = $(this).val();
        console.log(selectedValues);
    });
    
    // 页面初始化时获取默认选中值(如果有)
    var defaultSelected = $('#language').val();
    console.log(defaultSelected);
});
</script>

关键说明

  • 给每个<option>设置唯一且有业务意义的value值,确保获取的选中值符合实际需求。
  • 用$(document).ready()包裹所有JS代码,保证DOM元素加载完成后再执行操作,避免找不到节点的问题。
  • 通过change事件可以实时监听选中状态变化,即时获取最新的选中值;若需要页面初始化时就获取默认选中项,直接在ready回调中调用val()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 17:08:20