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

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

具体执行顺序为:(select2.full.js)
A.选中元素(如原html中无该option的话,根据data生成一个option 并选中它)
397692-20161126001946862-329582319.png

B.生成option元素

397692-20161126001947284-174855039.png

在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>


 




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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值