【发布时间】:2017-04-03 20:51:38
【问题描述】:
我们使用 jQuery 自动完成功能,因此用户可以查找现有帐户,但我们始终希望“添加新帐户”选项出现在列表底部,即使在开始搜索之后也是如此。我遇到的问题是,使用“添加新帐户”作为列表项将在搜索发生后消失,例如,如果您搜索“xyz”,则添加新帐户不会显示为选项,因为没有字符串匹配“xyz”。
在 API 文档中,我能找到的最接近的是使用 open 事件。我尝试了以下方法:
$("#tags").autocomplete({
source: availableTags, //look at API doc on sourcing data..
open: function () {
$('.ui-autocomplete').append('<li class="ui-menu-item"><div id="ui-id-2" tabindex="-1" class="ui-menu-item-wrapper">Add New Account</div></li>');
}
});
好消息是“添加新帐户”出现在列表末尾。坏消息是,当您将鼠标悬停\选择项目时,会发生错误:
Uncaught TypeError: Cannot read property 'value' of undefined
这是一个来自 jQueryUI 库的错误,一些 ui 数据被发送到 menufocus 事件,数据项标记为“ui-autocomplete-item”,但在该数据集合中没有与添加新帐户项。
我的理论是,传递给 menufocus 事件的数据直接来自搜索结果,并且因为该项目不在搜索结果中......它正在破坏!
关于如何始终将菜单选项“添加新帐户”附加到自动完成的任何想法?
【问题讨论】:
标签: javascript jquery-ui autocomplete