Jquery Mobile : listview remote autocomplete 官方演示不工作

Jquery Mobile : listview remote autocomplete official demo not working

我正在基于官方示例 https://demos.jquerymobile.com/1.4.5/listview-autocomplete-remote/ 在列表视图 (Jquery Mobile 1.4.5) 上实现远程自动完成。官方的demo居然不行:你试一下,打几个字什么都不显示

当我用我自己的代码调试它时,我可以看到我成功地检索了远程数据并用预期的结果 (li) 填充了列表视图 (ul)。问题似乎出在 JS 代码的最后两行:

$ul.listview( "refresh" );
$ul.trigger( "updatelayout"); 

项目 (li) 只是没有显示在列表视图中。 控制台中没有错误。但是如果我在控制台中显示列表视图 (ul) 的 HTML 内容,我会看到所有 li 元素都有 class "ui-screen-hidden"...

知道发生了什么吗?

提前致谢

当您在您的input中输入“cnn”时,您将获得响应记录。但是:在“cnn”查询的响应中,没有任何记录包含子字符串“cnn”,所以所有 listitems被过滤掉,会被框架隐藏。

来自documentation

By default, the text contained in each child is used for filtering

现在,也许您需要重新考虑您的应用程序的 workflow/usabilty。您真的需要可过滤的吗?

  • 也许你只需要 post 查询并显示格式良好的列表?
  • 您是否需要再次过滤接收到的(已过滤的)数据集?

可能的解决方案是自定义 filter function,或者您可以将 <li>data-filtertext 属性设置为类似 "cnn " + item.code 的内容,以避免初始过滤。

由于您没有在您的问题中提供有关您所需工作流程的任何信息,现在答案由您决定。