combobox自动提示组件添加无选中项清空功能
来源:互联网 发布:系统程序员保密 编辑:程序博客网 时间:2024/05/21 18:00
这个标题很绕口,不过这也是想了半天的成果,对不起体育老师了。
标题想表达的是:之前讲过的用combobox实现自动提示组件,不过现在规定该组件不可以保存data中不存在的数据。
最初的想法是通过onChange事件来作判断,但是无奈该函数在自动提示的模式下,每change一次会触发2次onChange事件,太诡异了遂放弃之。
而且onChange事件是在每次combobox中的内容改变时触发,若是关键字输入过程中,该事件一直触发。
而我们所要的效果是等用户输入结果再作校验,所以不符合要求。
查找API发现combo提供了一个onHidePanel事件的扩展点,当自动提示框隐藏时触发。
当时的想法是:输入完之后当然会隐藏输入框啦,感觉可以当成是完成输入的标识。
试了试,基本可以满足要求。有点小问题,就是用户快速输入之后点击其他地方,combobox失去焦点之后,有可能连输入框都不显示,何谈隐藏?
哎~通过现有API好像都无法完美地解决问题,那么就只有自己写了。。but 我的前端水平真是不怎么样,瞎j8鼓捣了一个版本,大家凑合看看~
$.extend($.fn.combobox.methods, {completeCheck:function(jq){var textbox = jq.combobox('textbox');console.log(jq)textbox.on('blur', function(){setTimeout('doCompleteCheck("' + jq.selector + '")', 200);// 这里先让combobox的一些操作走})}});function doCompleteCheck(selector){var jq = $(selector);var value = jq.combobox('getValue');var json = jq.combobox('getData');if(!findInJson(json, value)){jq.combobox('clear');jq.combobox('hidePanel');}}
我为combobox添加了一个新的方法:completeCheck
主要是为combobox中的textbox添加一个onBlur事件,这个textbox也就是我们在输入时的那个input组件。
那么当textbox失去焦点时则会触发doCompleteCheck函数,但是这里先要让combobox的一些操作先执行
所以我们给了200ms的延迟,之后通过比较是否存在在data中来决定是否需要清空combobox中的输入值
这里补充一点,其实若是输入的内容不在data中,combobox('getValue')的值都会是undefined,所以这样也可以来判断。
使用的时候就像调用combobox的其他方法一样就可以了。$('#cc').combobox('completeCheck');
- combobox自动提示组件添加无选中项清空功能
- wxpython comboBox 自动完成提示功能
- combobox,textbox 控件实现自动提示功能
- 利用easyUI的combobox打造自动提示组件
- 利用easyUI的combobox打造自动搜索提示功能
- VS2010的自动提示没有选中的功能
- easyui combobox 下拉框自动获取 每次添加全部选项 默认选中第一行
- MAC下添加添加Lib文件,实现自动提示功能
- combobox自动选中默认的选项
- comboBox 自动完成搜索功能
- AJAX自动提示,并添加有键盘上下选择功能
- Eclipse添加DTD文件实现xml的自动提示功能
- Eclipse添加DTD文件实现xml的自动提示功能
- Eclipse添加DTD文件实现xml的自动提示功能
- Eclipse添加DTD文件实现xml的自动提示功能
- Eclipse添加DTD文件实现xml的自动提示功能
- 快速给你的表单添加自动提示功能
- Eclipse添加DTD文件实现xml的自动提示功能
- HDU 1498 50 years, 50 colors 最小点覆盖
- AC自动机(good)codeforces86C
- 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
- 修改数据库存储路径
- Eclipse中Tomcat7 Maven插件详解
- combobox自动提示组件添加无选中项清空功能
- mplayer安装(CentOS7)
- iOS 中 JSON 数据交换格式
- 网络工程师备考经验总结
- CH Round #54 - Streaming #5 (NOIP模拟赛Day1) 总结
- printf返回值
- map集合和set集合的遍历方法汇总
- 装饰设计模式
- HDU 4585 Shaolin(STL map)