首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jquery自动完成对象传递

Jquery自动完成对象传递
EN

Stack Overflow用户
提问于 2018-06-10 01:05:17
回答 1查看 19关注 0票数 1

我已经拼凑了一个可以工作的自动补全原型,它可以将选定的文本作为跨度添加,这很好用。我想做的是从其他地方调用这段代码,所以我有这样的代码:

代码语言:javascript
复制
$("#searchBox").autocomplete({
  var testSourceData = ["First thing", "Second thing", "Third thing"];

  source: testSourceData,

  select: function(e, ui) {
    //create formatted searchTerm
    addSearchTerm(e, ui);
    $(this).val('');
    return false;
  },
  ...
});

function addSearchTerm(e, ui) {
  var searchTerm = ui.item.value;
  var span = $("<span>").text(searchTerm);
  var a = $("<a>").addClass("remove").attr({
    href: "javascript:",
    title: "Remove " + searchTerm
  }).text("x").appendTo(span);

  //add searchTerm to searchBox
  span.insertBefore("#searchBox");

}

我的问题是:eui对象是从哪里传递的?如果我想从其他地方调用addSearchTerm,我需要传递什么?

我目前正在尝试在enter键上调用它,所以我尝试这样做:

代码语言:javascript
复制
$("#searchBox").keydown(function (event) {
  if (event.keyCode == 13) {
    addSearchTerm(event, $("#searchBox"));
  }
});

但是我得到了一个错误:

未捕获值:无法读取未定义`的属性‘TypeError’

所以很明显,我传递给它的数据类型是错误的。我以为$("#whatever")引用了一个对象,但我想我错了。

任何想法或建议都会很棒,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 01:33:05

尝试此操作以触发select事件

代码语言:javascript
复制
$("#searchBox").keydown(function (event) {
  if (event.keyCode == 13) {
   $(this).data('ui-autocomplete')._trigger('select', 'autocompleteselect', {item:{value:$(this).val()}});
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50776643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档