jquery - 使用 _renderItem 类型会破坏自动完成字段

标签 jquery autocomplete

我有一个 jQuery 自动完成字段,到目前为止一直运行良好。我决定在其上使用 _renderItem 因为我想在结果中使用一些 HTML。这是我的代码:

function prepareClientField() {

  var renderItemFunction = function(ul, item) {
    return $("<li></li>")
      .data("item.autocomplete", item)
      .append(item.label)
      .appendTo(ul);
  };

  $("#client_name").autocomplete({
    source: clientNames,
    delay: 0
  }).data("autocomplete")._renderItem = renderItemFunction;

  $("#client_name").focus();
}

出于某种原因,现在我无法在自动完成字段中使用向上/向下箭头。我什至无法使用鼠标单击结果中的项目。我还需要做些什么才能使其真正发挥作用吗?

最佳答案

autocomplete 插件严重依赖于 menu 插件,后者在内部使用 a 元素。因此,从每个项目中删除 a 元素会破坏 menu 插件。

您可以手动安装 menu 插件并尝试让它工作,或者您需要找到另一个解决方案,其中项目具有 a 标签,但是不要搞乱你的风格。

关于jquery - 使用 _renderItem 类型会破坏自动完成字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086952/

相关文章:

javascript - 如何获取 px 维度的 <div> 高度

javascript - 在打开之前获取折叠面板的标题属性

jQuery UI 自动完成 - 让单击/输入移动到下一个字段

javascript - JQuery 自动完成 : Uncaught TypeError: Cannot read property 'value' of undefined

javascript - Material UI 自动完成标签动画不起作用

javascript - jQuery EasyAutocomplete 无法正常工作

JavaScript 错误 : Invalid Token when using ReCaptcha API

php - 使用 Ajax 的动态菜单

使用 val() 时特殊字符的 Javascript/jQuery 编码

javascript - 检测某个单词是否刚刚输入到文本区域中