• Jquery autocomplete 插件使用


    轻松实现类似百度输入框联想功能:

     

    autocomplete 是一个很厉害的插件,该插件基于jquery,在jquery官网能下载到最新版本。 首先,jQuery UI 是基于 jQuery 的,所以,必须在你的页面中首先引用 jQuery 脚本库,然后再引用 jQuery UI 库,对于 jQuery UI 库来说,可以引用整个的库,也可以仅仅引用当前页面用到的库。 使用autocomplete 时可以直接引入以下文件:


    • jquery-1.9.1.min.js
    • jquery.ui.autocomplete.js
    • jquery.ui.core.js
    • jquery.ui.position.js
    • jquery.ui.widget.js
    • jquery.ui.menu.js

    或直接引入聚合文件:


    • jquery-1.9.1.min.js
    • jquery-ui-1.10.3.custom.min.js
    • jquery-ui-1.10.3.custom.min.css

    demo Html:


    <input id="autocomplete" type="text" />

    javascript:

    //本地数据
    $(function () {
    var availableTags = [
    "ActionScript",
    "AppleScript",
    "Asp",
    "BASIC",
    "C",
    "C++",
    "Clojure",
    "COBOL",
    "ColdFusion",
    "Erlang",
    "Fortran",
    "Groovy",
    "Haskell",
    "Java",
    "JavaScript",
    "Lisp",
    "Perl",
    "PHP",
    "Python",
    "Ruby",
    "Scala",
    "Scheme"
    ];
    // 这里使用数组作为数据源,availableTags 是数组的名称
    $("#tags").autocomplete({
    source: availableTags
    });
    });
    /*************远程数据***************/
    $("#autocomplete").autocomplete({
    
    source: function (request, response) {
    
                        $.post("服务端地址",{ q: $("#autocomplete").val(), d: new Date().getTime(), r: Math.random() }, function(data)                     {
                        var redate = data.redate;
                        if (!data.result)
                        redate = [{ Name: "无数据", Id: "-1" }];
                        response($.map(redate, function (item) {
                        return {
                                  label: item.Name,
                                  value: item.Name,
                                  id:item.Id
                                  };
                        }));
                   });
              },
              minLength: 1,
              select: function (event, ui) {
                        alert("id=" + ui.item.id);
                        }
              });

    //服务端大致如下,返回json数据:

    public JsonResult GetDevelopersByKeyWord(string q)
    {
       var list = bll.GetUserList(q);
       return Json(new { result = list.Any(), redate = list }, JsonRequestBehavior.AllowGet);
    }
    /***********带有缓存的远程数据源(每次请求获取相同的数据)****************/
    $(function () {
        var url = "serviceHandler.ashx";
        var cache = {}, lastXhr;
        $("#auto").autocomplete({
            minLength: 2,
            source: function (request, response) {
                var term = request.term;
                if (term in cache) {
                    response(cache[term]);
                    return;
                }
    
                lastXhr = $.getJSON(url, request, function (data, status, xhr) {
                    cache[term] = data;
                    if (xhr === lastXhr) {
                        response(data);
                    }
                });
            }
        });
    }
    );
  • 相关阅读:
    implement the bucket sort and some analysis
    冪運匴
    polynomial multiplication
    WinRAR(WinZip)压缩与解压实现(C#版Window平台)
    Windows 窗体计时器事件,则不引发在 Windows 服务
    VS 2008智能提示是英文的怎么改成中文的?
    C#_SQL数据访问帮助类
    C#_DllImport用法和路径问题
    Office2003/2007/2010强力卸载工具下载
    Windows_装的是2008R2系统,在电脑属性里显示内存12G(可用4G)
  • 原文地址:https://www.cnblogs.com/huhangfei/p/4900452.html
Copyright © 2020-2023  润新知