tom select 默认会自动选中第一个 `
在使用 Tom Select 为原生
核心要点:
const select = new TomSelect('#ex-dropdown-input', {
plugins: ['dropdown_input', 'remove_button'],
// ❌ 不要写 allowEmptyOption: true
// ✅ 可按需启用 create: true(允许用户输入并创建新选项)
});? 原理说明:Tom Select 初始化时会读取原生 的 value。当首个 被设为默认选中项(即 selected 属性未显式设置,但 value 为空字符串),Tom Select 将其识别为“未选择”状态,并正确渲染 placeholder。
若因历史
原因无法修改 HTML 结构,可手动清空:
const select = new TomSelect('#ex-dropdown-input', {
plugins: ['dropdown_input', 'remove_button']
});
// 立即清空初始选中项(需确保 DOM 已就绪)
select.clear();⚠️ 注意事项:
| 方案 | 是否推荐 | 关键要求 | 维护性 |
|---|---|---|---|
| 添加 | ✅ 强烈推荐 | HTML 层面声明空状态,配置简洁 | 高(一次配置,长期稳定) |
| select.clear() 运行时清空 | ❌ 不推荐 | 需 JS 控制时机,易出竞态 | 低(需额外状态管理) |
始终优先通过语义化 HTML 定义初始状态——这不仅是 Tom Select 的最佳实践,更是现代 Web 表单开发的通用准则。