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

如何使用jQuery获取asp.net listbox当前选中选项并按选择顺序存储值

你之前的写法只能拿到按listbox原有DOM顺序排列的选中项,无法记录用户实际点击选择的先后顺序,因此需要额外维护一个数组来记录选择顺序。

完整实现代码

// 全局维护存储选择顺序的数组
let selectedOrder = [];

$("#<%=lstQuery.ClientID %>").change(function(e) {
  // 获取当前所有选中项的值集合
  const currentSelected = $(this).children('option:selected').map(function() {
    return $(this).val();
  }).get();

  // 过滤掉已经被取消选中的项
  selectedOrder = selectedOrder.filter(val => currentSelected.includes(val));

  // 将本次新增的选中项追加到数组末尾
  currentSelected.forEach(val => {
    if (!selectedOrder.includes(val)) {
      selectedOrder.push(val);
    }
  });

  // 按你需要的分隔符转成字符串,示例为逗号分隔
  const selectedValueStr = selectedOrder.join(',');
  // 此处可直接使用selectedValueStr变量做后续逻辑
  console.log('按选择顺序排列的选中值:', selectedValueStr);
});

补充说明

  • 如果需要重置选择顺序(比如触发表单重置、点击清空选中按钮),直接给selectedOrder赋值为空数组即可
  • 按住Ctrl批量多选的场景下,批量选中的多个项会按列表原有顺序追加到已有选择顺序的末尾,单独点选的项会严格按点击顺序追加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:27:01