gpt4 book ai didi

javascript - 输入迄今为止搜索的术语时,jQuery UI 自动完成不会触发搜索

转载 作者:数据小太阳 更新时间:2023-10-29 05:41:55 26 4
gpt4 key购买 nike

我有一个 jQuery UI 自动完成控件,它在 minLength = 3 时触发 Ajax 请求。问题如下:假设我输入“fic”作为初始搜索词 - 这很好。请求触发并返回结果。我决定不想选择任何结果,然后再次重新输入相同的搜索(同上)。这次没有触发 Ajax 请求!

我的代码如下所示:

// ... do request
$("#reportSearch").autocomplete({
delay: 50,
minLength: 3,
source: function(q, add){
$.ajaxSetup ({ cache: false});
$.ajax({
type: "GET",
url: K_URL_REQUEST


所以基本上在我上面描述的第二个场景中没有触发“源”回调。看起来这是因为自动完成控件保留了先前的搜索词,并且因为它匹配 - 没有触发搜索:

// Taken from jquery-ui-1.8.4.custom.min.js
if (a.term != a.element.val()) { // *** THE MATCH IS HERE
//console.log("a.term != a.element.val(): "+a.term+", "+a.element.val());
a.selectedItem = null;
a.search(null, c) // *** SEARCH IS TRIGGERED HERE
}


为了让它每次都触发,我只是在搜索返回后将搜索词重置为 null。这样它就按预期工作了。

问题是我不理解这种行为。我本以为每次搜索都应该是不同的。没有缓存(或者无论如何都不应该)。

因此,虽然我已经解决了我的问题,但我仍然觉得我在这里遗漏了一些东西。

有什么想法吗?提前致谢!

最佳答案

代替更改 jquery.ui,您可以尝试删除属性“previous”的值,执行如下操作:
$(this).data().autocomplete.previous = null;

关于javascript - 输入迄今为止搜索的术语时,jQuery UI 自动完成不会触发搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3956046/

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