Select2 4.0 ajax/processResults 中返回 id="" 的数据,选择不了

对ajax动态读取数据,选择( {id:"",text:"全部"} )id=“” 值选项时,在select元素中动态生成option代码并调用val选中该选中,问题在于动态生成option的value值不为"",导致选择不了(Firefox环境,其它未测试)

具体执行顺序为:(select2.full.js)
A.选中元素(如原html中无该option的话,根据data生成一个option 并选中它)
Select2 4.0 ajax/processResults 中返回 id=

B.生成option元素

Select2 4.0 ajax/processResults 中返回 id=

在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代码时:


 


来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/dazaxiaoer/p/6103415.html

你可能感兴趣的:(Select2 4.0 ajax/processResults 中返回 id="" 的数据,选择不了)