【发布时间】:2014-11-24 10:16:53
【问题描述】:
我有这个自动完成输入:
<input type="text" id="find_user" class="autocomplete_field" />
脚本:
$("#find_user").autocomplete({
source: "/get_ajax_data.php?type=find_user",
minLength: 3,
timeout : 1000,
select: function( event, ui ) {
window.location.href = "/user_admin.php?action=edit&id=" + ui.item.id
}
});
当用户输入“测试”时,我得到以下结果:
[{"id":"26","uname":"test 1","firstname":"Test","lastname":"1","email":"1@mail.com", ............
选择下拉菜单显示正常
我添加了一个显示全部的选项,输入一个“*”
$(".autocomplete_field").keyup(function(){
if ($(this).val() == '*') {
$(this).autocomplete('search', "___");
}
})
结果是:
[{"id":"1","uname":"admin","firstname":"Ad","lastname":"Min","email":"","lang_iso_code":null,.....................
但没有显示选择下拉菜单。
它可以在我的本地机器上运行,所以我认为这可能是超时问题。这就是我添加超时选项的原因(不确定是否正确)。没有帮助。 我认为它可能是除“测试”用户(只有另外两个用户)之外的用户中的数据......所以我通过填写他们的姓名(管理员和 cron)分别搜索了这两个用户,并且数据通过选择框返回正常显示。
当我尝试在实时站点上查看所有内容时,它不会显示选择下拉菜单。 虽然只有 5 个用户(admin + cron + 三个测试帐户) 返回 2.2kb 的数据大约需要 440 毫秒。
我正在使用 JQ UI 1.11
编辑:
我刚刚使用“___”作为搜索文本进行了测试,所有用户都显示在下拉菜单中。我假设代码:
$(this).autocomplete('search', "___");
与我搜索文本“___”时的操作相同
在控制台中,我可以看到 ajax 调用,术语设置为“___”,结果如上。就好像当我使用'*'时它不想显示菜单列表,并且只在实时服务器上。本地工作正常。
【问题讨论】:
-
我建议您查看这篇博文以了解 jQuery 自动完成 UI 示例 - salman-w.blogspot.in/2013/12/…
标签: jquery autocomplete