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

selectpicker设置值时出现竞态条件,求原因分析而非解决方案

Bootstrap Selectpicker刷新后选中值失效的原因分析

问题场景

按照常规步骤设置select元素值后调用selectpicker('refresh'),部分环境下最后设置的locale选项无法被正确选中。执行代码如下:

$('[name="city"]', form).val(subscription.city || '');                    // <input>
$('[name="province"]', form).val(subscription.province);                  // <select>
$('[name="locale"]', form).val(subscription.locale || defaultLocale);     // <select>

$('select', form).selectpicker('refresh');

将刷新语句包裹在setTimeout中可临时解决问题,但该方案并不稳定,无法保证每次都生效:

setTimeout(function(){
    $('select', form).selectpicker('refresh');
}, 10);

存在疑问:上述赋值与方法调用均为基础同步语句,为何会出现需要延迟执行才能生效的情况?

排查进展

  • 仅生产环境出现该问题,开发环境无异常
  • 已定位到问题根源:生产环境加载的MsDynamics相关脚本干扰了代码执行,注释/移除该脚本后,Selectpicker恢复正常工作
  • 当前需进一步排查该MsDynamics脚本中具体哪部分逻辑影响了Selectpicker的刷新机制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:22:11