对ajax动态读取数据,选择({id:"",text:"全部"})id=“”的值选项时,在select元素中动态生成option代码并调用val选中该选中,问题在于动态生成option的value值不为"",导致选择不了(Firefox环境,其它未测试)
具体执行顺序为:(select2.full.js)
A.选中元素(如原html中无该option的话,根据data生成一个option 并选中它)
B.生成option元素
在3185行 创建option 元素
在3188行 设置内容时,将元素option的text,value默认都置为了text的内容"全部"(Firefox环境,其它未测试)
在3194行 判断 if(data.id) 行,当id为""时,则不通过即option.value为text的"全部"导致选择不了.
解决方法为:
1.可将3194行的if(data.id) 改为 if(data.id || data.id==="") 如通过ajax从远程读取在$("xx").select(),后通地$("xx").val("").
(如果想 初始时+及每次ajax读取数据后 都显示全部,该方法还需修改3992行,Select2 4.0 配置了 placeholder 及 results 有相同的选项,会在下拉结果中无该元素的原因),修改代码出现BUG自行脑补吧。
2.在页面html代码时:<select><option value="">全部</option></select>
时间: 2024-12-31 05:45:44