JavaScript 自动完成脚本整理(33个)

yizhihongxing

JavaScript 自动完成脚本整理(33个) 完整攻略

简介

自动完成是指在用户输入时,自动帮助用户补全已知的完整表达。这在网页制作中特别常见,利用 JavaScript 可以很容易地实现自动完成。

本攻略将介绍 JavaScript 中的33个自动完成脚本整理,包含输入提示,模糊搜索等常用自动完成功能的实现方式。下面进行详细讲解。

代码实现

1. 使用 jQuery UI Autocomplete 插件实现输入提示

jQuery UI Autocomplete 插件是一个非常实用的自动完成插件,它可以检验用户输入的有效性,并在输入时给出提示。以下是实现代码。

$(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"
  ];
  $( "#autocomplete" ).autocomplete({
    source: availableTags
  });
});

2. 使用 jQuery UI Autocomplete 插件实现模糊搜索提示

有时用户输入的关键字并不完整,或者用户不知道要输入的完整关键字。这时候可以使用 jQuery UI Autocomplete 插件实现模糊搜索提示。

$(function() {
  var options = {
    url: "/search.php",
    getValue: "name",
    list: {
      match: {
        enabled: true
      }
    }
  };
  $("#search").easyAutocomplete(options);
});

3. 使用 Typeahead.js 插件实现输入提示

Typeahead.js 插件是另一个非常实用的自动完成插件,可以实现高性能并支持多种数据源。以下是实现代码。

var substringMatcher = function(strs) {
  return function findMatches(q, cb) {
    var matches, substrRegex;

    // an array that will be populated with substring matches
    matches = [];

    // regex used to determine if a string contains the substring `q`
    substrRegex = new RegExp(q, 'i');

    // iterate through the pool of strings and for any string that
    // contains the substring `q`, add it to the `matches` array
    $.each(strs, function(i, str) {
      if (substrRegex.test(str)) {
        matches.push(str);
      }
    });

    cb(matches);
  };
};

var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
  'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
  'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
  'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
  'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
  'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
  'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
  'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
  'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
];

$('#the-basics .typeahead').typeahead({
  hint: true,
  highlight: true,
  minLength: 1
},
{
  name: 'states',
  source: substringMatcher(states)
});

4. 使用 Bloodhound 插件实现模糊搜索提示

Bloodhound 是一个灵活、快速的类型ahead.js引擎,依赖 jQuery。它支持远程数据或本地数据处理,并且可以构建所需复杂数据集。

var movies = new Bloodhound({
  datumTokenizer: function(d) {
    return Bloodhound.tokenizers.whitespace(d.value);
  },
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  prefetch: {
    url: '/data/post_1960.json',
    filter: function(list) {
      return $.map(list, function(movie) {
        return { value: movie };
      });
    }
  }
});

// kicks off the loading/processing of `local` and `prefetch`
movies.initialize();

$('.typeahead').typeahead(null, {
  name: 'movies',
  displayKey: 'value',
  hint: true,
  source: movies.ttAdapter(),
  templates: {
    empty: [
      '<div class="empty-message">',
        'unable to find any Best Picture winners that match the current query',
      '</div>'
    ].join('\n'),
    suggestion: Handlebars.compile('<div>{{value}}</div>')
  }
});

结语

本攻略通过简单介绍了 JavaScript 自动完成脚本整理中的 33 个例子,从而让大家更好地了解这个方面的应用。需要注意的是,虽然这里展示了多种自动完成脚本整理实现方式,但在实际使用中,选择合适的自动完成脚本整理方式,是要根据自己的实际需求和业务场景来决定的。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 自动完成脚本整理(33个) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JavaScript常用内置对象用法分析

    JavaScript常用内置对象用法分析攻略 什么是内置对象 在JavaScript中,常用内置对象是指自带的对象,无需额外导入或安装插件便可直接使用的对象。比如:数组对象、字符串对象、数学对象、日期对象等。 常用内置对象用法分析 数组对象 数组对象是JavaScript中重要的内置对象之一。数组对象用法如下: 创建数组 var arr = new Arra…

    JavaScript 2023年6月10日
    00
  • js字符串引用的两种方式(必看)

    JS字符串引用的两种方式 在JavaScript中,字符串是一个常见的数据类型。在使用字符串的过程中,我们需要通过引用字符串来进行操作。在JavaScript中,有两种常见的字符串引用方式,分别是单引号和双引号。 单引号字符串引用 使用单引号引用的字符串,需要在字符串的开头和结尾都添加单引号。 let str1 = ‘这是一个使用单引号引用的字符串’; co…

    JavaScript 2023年5月28日
    00
  • 收集的比较全的automation服务器不能创建对象 异常原因和解决方法第1/2页

    收集的比较全的automation服务器不能创建对象 异常原因和解决方法 问题描述 当在使用Automation对象时,可能会出现收集的比较全的automation服务器不能创建对象的异常错误。该错误的主要描述是无法创建对象,在使用Automation时会造成很大的困扰。 异常原因 这个问题通常是由以下原因引起的: COM组件注册问题。如果组件没有正确注册或…

    JavaScript 2023年5月28日
    00
  • javascript 网页跳转的方法

    下面是详细讲解“JavaScript 网页跳转的方法”的攻略: 1. 使用 location 对象 JavaScript 中的 location 对象包含了当前窗口的 URL 信息,可以通过 location 对象跳转到另一个页面。使用 location 对象的方式非常简单,只需要将想要跳转的 URL 赋值给它的 href 属性即可: location.hr…

    JavaScript 2023年5月18日
    00
  • 用js模拟JQuery的show与hide动画函数代码

    下面是用JavaScript模拟jQuery的show和hide的完整攻略,步骤如下: 1. 获取元素并设置样式 首先,我们需要获取到要显示或隐藏的元素,并设置样式。我们可以使用document.querySelector或document.querySelectorAll获取元素,设置元素的display属性来控制元素的显示或隐藏。 const eleme…

    JavaScript 2023年6月11日
    00
  • JS集合set类的实现与使用方法示例

    JS集合(Set)类的实现与使用方法示例 Set类的实现 Set(集合)是ECMAScript 6中新增的数据结构,它类似于数组,但其成员的值都是唯一的,没有重复的值。Set类的实现与使用方法示例如下: class Set { constructor() { this.items = {} } /** * 方法名称:add * 方法描述:向集合中添加新的元素…

    JavaScript 2023年5月28日
    00
  • HTML DOM Viewer

    HTML DOM Viewer 是一款用于查看 HTML DOM 结构的工具。下面将详细讲解 HTML DOM Viewer 的使用方法: HTML DOM Viewer 的安装 首先,在浏览器中搜索“HTML DOM Viewer”,在搜索结果中选择一个安全、可靠的网站进行下载。 点击下载按钮,等待下载完成。下载完成后,解压下载的压缩文件。 在解压出来的文…

    JavaScript 2023年6月11日
    00
  • js 键盘记录实现(兼容FireFox和IE)

    实现JS键盘记录兼容FireFox和IE的方法有很多种。下面我将为大家介绍一种比较常用的实现方式。 1. 监听键盘事件 要实现JS键盘记录,首先我们需要监听用户的键盘事件。一般情况下,用户在按下键盘上的按键时,会触发以下三种事件: keydown: 在键盘按下时触发,可能会连续触发多次。 keyup: 在键盘松开时触发,可能会连续触发多次。 keypress…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部