我想计算自动完成中显示的结果。
HTML输入字段:
<input name="input_1" id="input_1_1"
type="text" value="" class="medium ui-autocomplete- input"
tabindex="1" autocomplete="off">
Jquery自动完成:
var availableTags = [];
$("#toggles h3").each(function() {
availableTags.push( $(this).text());
});
// console.log( + " availableTags items gevonden");
console.log(availableTags);
$( ".autocomplete #input_1_1" ).autocomplete({
source: availableTags
});
Jquery计数代码:
var actualTags = (".ui-menu-item");
console.log(actualTags);
$(".autocomplete #input_1_1").keyup(function(){
$(".count").text(actualTags.length +" results");
});
ui-menu-item
是自动填充中每个结果的类。
.count =计数器必须在的<p>
的类。
我只想要第三个代码来计算输入时文本框中显示的结果。这似乎工作,但它计算错误的项目,我不知道我应该在这里输入哪个项目; var actualTags =(“.ui-menu-item”);它现在提供了文本框中的所有可用标记(甚至是那些未显示的标记)。
答案 0 :(得分:1)
更好的选择是使用jQuery自动完成提供的response
回调
搜索完成后触发,然后显示菜单。有用 用于本地操作建议数据,其中包含自定义源 选项回调不是必需的。当a时总是触发此事件 搜索完成,即使菜单不会显示,因为有 没有结果或禁用自动填充功能。
<强>代码:强>
$(".autocomplete #input_1_1").autocomplete({
source: availableTags,
response: function (event, ui) {
$(".count").text(ui.content.length);
}
});
答案 1 :(得分:0)
项目在.ui-autocomplete
中作为li附加。请尝试:
$(".count").text($('.ui-autocomplete > li').length +" results");
最好使用自动完成的原生选项open
,以确保仅在添加选项后才计算长度:
$( ".autocomplete #input_1_1" ).autocomplete({
source: availableTags,
open: function(event,ui){
$(".count").text($('.ui-autocomplete > li').length +" results");
}
});
<强> Working Demo 强>