Easyui combobox 判断输入项是否存在于下拉列表中

combobox的getValue方法很诡异,当输入项是存在于下拉列表时,返回的是需要的ID,但是当输入项是不存在于下拉列表时,却直接返回用户的输入结果。从而导致没法判断用户是否输入了下拉框不存在的项。

本来第一时间想到直接判断getValue得到是否为整形字符串,结果考虑到用户可能就是刚好输入了不存在于下拉列表的数字,会留下BUG隐患。

百度查出来的几个办法大同小异,基本是在combobox的onHidePanel(下拉列表隐藏事件)事件中,拿用户输入值和列表做对比来判断是否存在。但是感觉这方法并不好用。

其实,仔细想了下,既然用户输入正确时,getValue能正确的返回ID,那插件内部肯定也是有个遍历过程的,为何我们要在外部再遍历一次?直接修改插件,让他getValue在错误输入是直接返回空,不就能直接通过判断getValue是否为空来确认用户输入是否存在于下拉列表中了么?

在这里插入图片描述
检查easyui源码(1.9.15)后发现,在该部位,确实有个变量(_b63),先赋值了用户输入字符串,然后遍历所有下拉列表,如果存在于下拉列表则把变量重新赋值为ID字段。

这里只需要把该变量改为默认为空就行了,这样在用户错误输入下,getValue就会得到一个空值,直接通过判断空值来确认用户是否输入了下拉列表不存在的选项。

当然,感觉easyui这种奇怪的做法,可能是因为有什么地方需要这样处理。或许是为了兼容下拉列表没有绑定ID字段,只有text的情况时可以正确获取到text内容?反正我的下拉列表都有绑定ID字段,就先这么用着吧~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值