gpt4 book ai didi

javascript - jQuery autocomplete json source - 不自动完成,但只显示完整列表

转载 作者:行者123 更新时间:2023-11-29 15:01:34 25 4
gpt4 key购买 nike

我使用 jQuery UI 的自动完成功能。

$("#search").autocomplete({
minLength: 0,
source: 'source.php',
select: function( event, ui ) {
$("#search").val(ui.item.label);
return false;
},
focus: function(event, ui) {
$("#search").val(ui.item.label);
return false;
}

});

我在 source.php 中插入多个元素并返回它们 json 编码。

$search[] = array(
'value' => $id,
'label' => $name
);
echo json_encode($search);

当我开始在自动完成字段中输入内容时,会显示一个包含 source.php 元素的列表。但不幸的是,他们所有人。它们不会根据我在字段中输入的内容进行过滤。

我在使用 json 时是否需要设置任何特殊选项?

编辑:感谢 T.J. Crowder 我想出了这个解决方案来让 jQuery 完成这项工作; )

$.getJSON('source.php', function(search) {
$("#search").autocomplete({
minLength: 0,
source: search,
select: function( event, ui ) {
$("#search").val(ui.item.label);
return false;
},
focus: function(event, ui) {
$("#search").val(ui.item.label);
return false;
}
});

最佳答案

从文档中看并不明显,但是当您提供任何将涉及运行代码(服务器端或客户端)的时,jQuery UI 自动完成器期望 过滤结果。对于服务器端代码,您将使用它传递给 PHP 文件的 term 参数。来自 the docs :

When a String is used, the Autocomplete plugin expects that string to point to a URL resource that will return JSON data. It can be on the same host or on a different one (must provide JSONP). The request parameter "term" gets added to that URL. The data itself can be in the same format as the local data described above.

(如果他们真的在那里提到过滤就好了;我已经 logged an issue 建议他们这样做。更新:他们用了不到三个小时来更新文档并关闭问题; 新文档将在某个时候推送,至少在 v1.9 之前。很好!)

自动完成器允许您以三种方式提供资源:

  • 静态源数组:在这种情况下,自动完成器进行过滤。

  • 服务器端调用:在这种情况下,它传递一个 term 参数,您应该使用它来进行过滤。

  • 客户端调用:在这种情况下,它将request 对象传递给具有term 属性的客户端代码;您应该使用它来过滤。

关于javascript - jQuery autocomplete json source - 不自动完成,但只显示完整列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com