【问题标题】:Add user's input to autocomplete [closed]将用户的输入添加到自动完成[关闭]
【发布时间】:2016-03-11 23:38:16
【问题描述】:

下午好,

初级开发者问题...

我在这个标记插件中使用 jquery 自动完成功能:

$('#hh').tagEditor({
  duplicateTagClass:'bounce',
  initialTags:['Insert','tags','here'],
  placeholder: 'Insert tags here',
  autocomplete: {
    delay: 0,
    minChars: 1,
    position: {collision:'flipfit'},
    source:  ['a','b','c']}

我需要知道如何在本地数组中插入用户的输入。 用户键入“a”,自动完成会显示结果,但如果用户键入“k”按回车,我需要将该“k”值保存为自动完成源的一部分。

希望我解释得足够清楚。 提前致谢。

【问题讨论】:

  • 您的 JavaScript 代码不完整或无效。请详细说明。

标签: jquery autocomplete


【解决方案1】:

请查看https://jsfiddle.net/alanshearer/hfgz5e6e/4/ 您可以使用 tageditor 小部件的 onChange 回调来解决您的问题:

HTML:

<input id="tags-editor" />

Javascript:

var source = ['a','b','c'];

var tagseditor = $('#tags-editor').tagEditor({
    duplicateTagClass:'bounce',
  initialTags:['Insert','tags','here'],
  placeholder: 'Insert tags here',
  autocomplete: {
    delay: 0,
    minChars: 1,
    position: {collision:'flipfit'},
    source: source
  },
  onChange: function(field, editor, tags) {
  var value = tags.reverse()[0];
  if ($.inArray(value, source) =='-1')
      source.push(value);
  }
});

【讨论】:

  • 上帝之母这工作!您是插件创建者之一吗?你能解释一下它为什么起作用的逻辑吗?非常感谢!!当我长大后想成为像你一样优秀的开发人员jejeje。
  • 哈哈...不幸的是我不是!不客气!!
  • 然后,关于逻辑:如果你添加一个元素,函数onChange会被调用并返回三个参数,在这种情况下你只需要第三个:tags,它代表插入的数组元素 - 显然是最后一个插入的元素。您检查最后一个元素是否包含在源数组中,如果没有将其添加到。
猜你喜欢
  • 2014-01-25
  • 1970-01-01
  • 2021-06-15
  • 2021-12-31
  • 1970-01-01
  • 2022-08-08
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多