我创建了一个搜索过滤器,用于分离与用户输入的内容不匹配的选项。
例如,列表包含:“hello”,“good bye”,“halo”,如果我输入“h”,那么它只会显示“hello”和“halo”。
我面临的问题是,如果有一个选项我无法选择它,但如果有多个选项我可以。
这是(完整代码)JSFiddle: JSFIDDLE LINK
重新创建问题:在输入框中输入“another”,然后尝试在选择菜单中选择“do another”选项。
如果有多个选项,我可以选择任何选项,所以如果我输入单词“do”,那么我可以选择其中任何一个选项。
var probOptions = $("#problem>option");
function searchFilter() {
$("#searchInput").change(function() {
var searchString = $(this).val().toLowerCase();
$("#problem").empty().append(probOptions);
$("#problem>option").each(function() {
var text = $(this).text().toLowerCase();
if (text.indexOf(searchString) <= -1) {
$(this).detach();
// THE LINE BELOW FIXES THE PROBLEM (THE LINE BELOW IS NEWLY ADDED)
$("#problem").selectmenu("refresh");
}
});
});
}
searchFilter();
答案 0 :(得分:0)
我自己设法解决了这个问题。
显然对于JQuery移动设备,您需要刷新列表,但不需要标准的JQuery。
这是解决方案(其中#problem是选择菜单的ID):
$("#problem").selectmenu("refresh");
希望这有助于解决此问题的任何人。