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

如何使用JavaScript重置MDB Select下拉选择框?

问题根因

你使用的是MDB 4.x Pro版本封装的materialSelect组件,该组件初始化后会基于原生<select>生成自定义的可视化UI结构,仅修改原生select的selectedIndex只会更新底层DOM属性,不会同步到MDB渲染的可见输入框、下拉选中状态,所以视觉上没有重置效果。
另外你当前的两个select元素都放在<form id="bmrcalc">标签外部,原生form的reset方法本身也无法处理表单外的元素。

解决方案

修改resetFields函数,修改原生选中值后调用MDB提供的materialSelect('update')方法同步UI即可,同时覆盖两个下拉框的重置逻辑:

// Reset
function resetFields() {
  document.getElementById("bmrcalc").reset();
  // 遍历处理两个下拉选择框
  const selectIds = ['select-sex', 'select-lifestyle'];
  selectIds.forEach(selectId => {
    const nativeSelect = document.getElementById(selectId);
    nativeSelect.selectedIndex = 0;
    // 调用MDB组件方法同步更新UI显示
    $(nativeSelect).materialSelect('update');
  });
}

补充说明

如果希望原生form的reset方法可以直接覆盖select元素,可以把两个<select>标签移入<form id="bmrcalc"></form>内部,符合表单元素的语义规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:27:03