Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 700|回复: 0

[默认分类] Jquery AutoComplete的使用方法实例

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-7-9 18:59:13 | 显示全部楼层 |阅读模式
    jQuery的Autocomplete(自动完成、自动填充)插件有不少,但比较下来我感觉,还是bassistance.de的JQuery Autocomplete plugin比较强大,我们就来写一些代码感受一下。

    jquery-autocomplete配置:
    <script type="text/javascript" src="/js/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="/js/jquery.autocomplete.min.js"></script>
    <link rel="Stylesheet" href="/js/jquery.autocomplete.css" />

    首先是一个最简单的Autocomplete(自动完成)代码片段:



      
       1
      <
      HTML
      xmlns
      ="http://www.w3.org/1999/xhtml"
      >
      

       2
      
      <
      head
      runat
      ="server"
      >
      

       3
          
      <
      title
      >
      AutoComplate
      </
      title
      >
      

       4
          
      <
      script
      type
      ="text/javascript"
       src
      ="/js/jquery-1.4.2.min.js"
      ></
      script
      >
      

       5
          
      <
      script
      type
      ="text/javascript"
       src
      ="/js/jquery.autocomplete.min.js"
      ></
      script
      >
      

       6
          
      <
      link
      rel
      ="Stylesheet"
       href
      ="/js/jquery.autocomplete.css"
       
      />
      

       7
          
      <
      script
      type
      ="text/javascript"
      >
      

       8
              $(
      function
      () {

       9
                  
      var
       data
      =
       
      "
      Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities
      "
      .split(
      "
       
      "
      );

      10
      

      11
                  $(
      "
      #keyword
      "
      ).autocomplete(data).result(
      function
      (event, data, formatted) {

      12
                      alert(data);

      13
                  });

      14
              });

      15
          
      </
      script
      >
      

      16
      
      </
      head
      >
      

      17
      
      <
      body
      >
      

      18
          
      <
      form
      id
      ="form1"
       runat
      ="server"
      >
      

      19
          
      <
      div
      >
      

      20
             
      <
      input
      id
      ="keyword"
       
      />
      

      21
             
      <
      input
      id
      ="getValue"
       value
      ="GetValue"
       type
      ="button"
       
      />
      

      22
          
      </
      div
      >
      

      23
          
      </
      form
      >
      

      24
      
      </
      body
      >
      

      25
      
      </
      html
      >



    result方法是jQuery Autocomplete插件里的重要方法,它在用户在选定了某个条目时触发。data参数为选中的数据。

    一个稍微复杂的例子,可以自定义提示列表:


      
       1
      <
      html
      xmlns
      ="http://www.w3.org/1999/xhtml"
      >
      

       2
      
      <
      head
      runat
      ="server"
      >
      

       3
          
      <
      title
      >
      自定义提示
      </
      title
      >
      

       4
          
      <
      script
      type
      ="text/javascript"
       src
      ="/js/jquery-1.4.2.min.js"
      ></
      script
      >
      

       5
          
      <
      script
      type
      ="text/javascript"
       src
      ="/js/jquery.autocomplete.min.js"
      ></
      script
      >
      

       6
          
      <
      link
      rel
      ="Stylesheet"
       href
      ="/js/jquery.autocomplete.css"
       
      />
      

       7
          
      <
      script
      type
      ="text/javascript"
      >
      

       8
             
      var
       emails
      =
       [

       9
                  { name:
      "
      Peter Pan
      "
      , to:
      "
      peter@pan.de
      "
       },

      10
                  { name:
      "
      Molly
      "
      , to:
      "
      molly@yahoo.com
      "
       },

      11
                  { name:
      "
      Forneria Marconi
      "
      , to:
      "
      live@japan.jp
      "
       },

      12
                  { name:
      "
      Master <em>Sync</em>
      "
      , to:
      "
      205bw@samsung.com
      "
       },

      13
                  { name:
      "
      Dr. <strong>Tech</strong> de Log
      "
      , to:
      "
      g15@logitech.com
      "
       },

      14
                  { name:
      "
      Don Corleone
      "
      , to:
      "
      don@vegas.com
      "
       },

      15
                  { name:
      "
      Mc Chick
      "
      , to:
      "
      info@donalds.org
      "
       },

      16
                  { name:
      "
      Donnie Darko
      "
      , to:
      "
      dd@timeshift.info
      "
       },

      17
                  { name:
      "
      Quake The Net
      "
      , to:
      "
      webmaster@quakenet.org
      "
       },

      18
                  { name:
      "
      Dr. Write
      "
      , to:
      "
      write@writable.com
      "
       },

      19
                  { name:
      "
      GG Bond
      "
      , to:
      "
      Bond@qq.com
      "
       },

      20
                  { name:
      "
      Zhuzhu Xia
      "
      , to:
      "
      zhuzhu@qq.com
      "
       }

      21
              ];

      22
      

      23
                  $(
      function
      () {

      24
                      $(
      "
      #keyword
      "
      ).autocomplete(emails, {

      25
                          max:
      12
      ,   
      //
      列表里的条目数
      

      26
      
                          minChars:
      0
      ,   
      //
      自动完成激活之前填入的最小字符
      

      27
      
                          width:
      400
      ,     
      //
      提示的宽度,溢出隐藏
      

      28
      
                          scrollHeight:
      300
      ,   
      //
      提示的高度,溢出显示滚动条
      

      29
      
                          matchContains:
      true
      ,   
      //
      包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示
      

      30
      
                          autoFill:
      false
      ,   
      //
      自动填充
      

      31
      
                          formatItem:
      function
      (row, i, max) {

      32
                              
      return
       i
      +
       
      "
      /
      "
       
      +
       max
      +
       
      "
      :"
      "
       
      +
       row.name
      +
       
      "
      "[
      "
       
      +
       row.to
      +
       
      "
      ]
      "
      ;

      33
                          },

      34
                          formatMatch:
      function
      (row, i, max) {

      35
                              
      return
       row.name
      +
       row.to;

      36
                          },

      37
                          formatResult:
      function
      (row) {

      38
                              
      return
       row.to;

      39
                          }

      40
                      }).result(
      function
      (event, row, formatted) {

      41
                          alert(row.to);

      42
                      });

      43
                  });

      44
          
      </
      script
      >
      

      45
      
      </
      head
      >
      

      46
      
      <
      body
      >
      

      47
          
      <
      form
      id
      ="form1"
       runat
      ="server"
      >
      

      48
          
      <
      div
      >
      

      49
             
      <
      input
      id
      ="keyword"
       
      />
      

      50
             
      <
      input
      id
      ="getValue"
       value
      ="GetValue"
       type
      ="button"
       
      />
      

      51
          
      </
      div
      >
      

      52
          
      </
      form
      >
      

      53
      
      </
      body
      >
      

      54
      
      </
      html
      >



    formatItem、formatMatch、formatResult是自定提示信息的关键。
    formatItem作用在于可以格式化列表中的条目,比如我们加了“I”,让列表里的字显示出了斜体。
    formatMatch是配合formatItem使用,作用在于,由于使用了formatItem,所以条目中的内容有所改变,而我们要匹配的是原始的数据,所以用formatMatch做一个调整,使之匹配原始数据,
    formatResult是定义最终返回的数据,比如我们还是要返回原始数据,而不是formatItem过的数据。


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-19 11:46 , Processed in 0.339500 second(s), 38 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表