我创建了一个搜索过滤器,可以分离与用户输入的内容不匹配的选项。
例如,列表包含:“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();
最佳答案
我自己设法解决了这个问题。
显然,对于 JQuery 移动版,您需要刷新列表,但标准 JQuery 则不需要。
这是解决方案(其中#problem 是选择菜单的 ID):
$("#problem").selectmenu("refresh");
希望这对遇到此问题的人有所帮助。
关于javascript - 无法选择 JQuery(移动)/JavaScript 选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765349/