经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery UI » 查看文章
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
来源:jb51  时间:2019/6/4 15:26:54  对本文有异议

本文实例讲述了jquery UI实现autocomplete在获取焦点时得到显示列表功能。分享给大家供大家参考,具体如下:

在做项目的时候,客户有这样的需求,将以前输入过的内容,在某个文本框上用列表的形式提示出来,可以选择,换言之,就如同我们用谷歌搜索,或者百度搜索一样,输入一些关键词,会自动提示,这个功能就叫autocomplete. 当然在 jquery  UI  下有 插件,具体下载的地方,搜索就知道了。重点是,我现在的用法,是需要在文本框获取焦点的时候,就弹出待选择的列表。而传统的是必须在输入文字之后才出现。经过发现,jquery ui autocomplete 用如下方法可以实现

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>jQuery UI Autocomplete - Categories</title>
  6. <link rel="stylesheet" href="../../themes/base/jquery.ui.all.css" rel="external nofollow" >
  7. <script src="../../jquery-1.9.1.js"></script>
  8. <script src="../../ui/jquery.ui.core.js"></script>
  9. <script src="../../ui/jquery.ui.widget.js"></script>
  10. <script src="../../ui/jquery.ui.position.js"></script>
  11. <script src="../../ui/jquery.ui.menu.js"></script>
  12. <script src="../../ui/jquery.ui.autocomplete.js"></script>
  13. <link rel="stylesheet" href="../demos.css" rel="external nofollow" >
  14. <style>
  15. .ui-autocomplete-category {
  16. font-weight: bold;
  17. padding: .2em .4em;
  18. margin: .8em 0 .2em;
  19. line-height: 1.5;
  20. }
  21. </style>
  22. <script>
  23. var data = [
  24. { label: "anders", category: "" },
  25. { label: "andreas", category: "" },
  26. { label: "antal", category: "" },
  27. { label: "annhhx10", category: "Products" },
  28. { label: "annk K12", category: "Products" },
  29. { label: "annttop C13", category: "Products" },
  30. { label: "anders andersson", category: "People" },
  31. { label: "andreas andersson", category: "People" },
  32. { label: "andreas johnson", category: "People" }
  33. ];
  34. function dynamicAutocomplete(){
  35. $("#search").autocomplete({
  36. delay:200,
  37. autoFocus: false,
  38. source: data,
  39. minLength: 0,
  40. }).focus(function () {
  41. $(this).autocomplete("search");
  42. });
  43. }
  44. </script>
  45. </head>
  46. <body>
  47. <button onclick="dynamicAutocomplete()">autocomplete</button> <br />
  48. <label for="search">Search: </label>
  49. <input id="search">
  50. <div class="demo-description">
  51. <p>A categorized search result. Try typing "a" or "n".</p>
  52. </div>
  53. </body>
  54. </html>
  55.  

代码来源于官网例子,稍稍改动了一下,但貌似在IE 下有点问题,选择某个选项之后,这个列表框不消失,还一直存在,比较郁闷。

在google 上搜索了一下,发现了一篇文章,也讲到了这个问题。后来用如下方法解决,不过是失去焦点的方式做的。

  1. function dynamicAutocomplete(){
  2. $("#search").autocomplete({
  3. minLength: 0,
  4. source: data,
  5. focus :function () {
  6. return false;
  7. },
  8. select: function(event, ui){
  9. $this = $(this);
  10. setTimeout(function () {
  11. $this.blur();
  12. }, 1);
  13. }
  14. }).focus(function(){
  15. $(this).autocomplete("search");
  16. return false;
  17. }
  18. );
  19. };
  20.  

在ie 下面用了timeout 来解决,在网上看到很多人说,在focus  方法中 return false 就可以解决,但我就是没有测试成功.

更多关于jQuery相关内容感兴趣的读者可查看jb51专题:《jQuery页面元素操作技巧汇总》、《jQuery常见事件用法与技巧总结》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》及《jquery选择器用法总结

希望本文所述对大家jQuery程序设计有所帮助。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号