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

使用bootstrap-select多选时,如何在change事件中获取点击的选项值?

解决bootstrap-select多选模式下获取单次点击选项值的问题

在bootstrap-select的多选场景中,原生change事件无法直接获取本次点击的单个选项值,原因是组件封装后,该事件触发时仅能拿到所有已选中的选项集合。需要使用bootstrap-select专属的changed.bs.select事件来实现需求。

可行代码示例

方式一:通过事件参数获取

$('#bootstrap-select').on('changed.bs.select', function (e, clickedIndex, isSelected) {
    // 根据点击索引获取对应的option元素
    const clickedOption = $(this).find('option').eq(clickedIndex);
    // 获取本次点击的选项值
    const clickedValue = clickedOption.val();
    
    console.log('本次点击的选项值:', clickedValue);
    // 可选:判断当前操作是选中还是取消选中
    console.log('操作类型:', isSelected ? '选中' : '取消选中');
});

方式二:通过relatedTarget获取

$('#bootstrap-select').on('changed.bs.select', function (e) {
    if (e.relatedTarget) {
        // 直接从点击的DOM元素中提取value
        const clickedValue = $(e.relatedTarget).val();
        console.log('本次点击的选项值:', clickedValue);
    }
});

原代码失效原因说明

  • 第一个代码返回undefined:在bootstrap-select的多选模式下,原生select的this.value属性无法正确返回选中值,组件封装后已覆盖了原生的部分行为。
  • 第二个代码返回所有选中值:$(this).val()是bootstrap-select提供的获取全部选中值的方法,符合组件设计逻辑,但无法满足单次点击的取值需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:20:19