问题描述
select2 设置 tags = true 的时候可以输入并选择自定义的内容。但是最近出现了 <select>
重新插入初始化的时候,选择了自定义 tag 但是界面没有更新的情况。
插件版本: select2 4.0.1
查找
跟着源码跑了几遍才发现 select2 会对选择进行过滤,通过 getHighlightedResults 方法找到 select option:selected 的对应选项,如果当期 tag 是已选中的就直接 self.trigger(‘close‘, {});
了。但是自定义 tag 是输入查询后才创建、插入 select,怎么会选中呢?想了一下,是 select 会把第一个 option 默认选中的缘故。
解决
select 插入一个空值的 option 就行了
<select name="id"> <option value=""></option> </select>