gpt4 book ai didi

javascript - 如何在剑道组合框完成过滤器后触发事件

转载 作者:行者123 更新时间:2023-11-28 08:14:50 25 4
gpt4 key购买 nike

我需要在组合框完成过滤后触发一个事件

我已经扩展了小部件,并尝试在通话结束时丢弃 .done。

    search: function(word) {
word = typeof word === "string" ? word : this.text();
var that = this,
length = word.length,
options = that.options,
ignoreCase = options.ignoreCase,
filter = options.filter,
field = options.dataTextField;

clearTimeout(that._typing);

if (length >= options.minLength) {
that._state = STATE_FILTER;
if (filter === "none") {
that._filter(word);
} else {
that._open = true;
that._filterSource({
value: ignoreCase ? word.toLowerCase() : word,
field: field,
operator: filter,
ignoreCase: ignoreCase
}); // .done here does not work :(
}
}
},

我需要知道何时返回值,以便一旦我知道输入与值服务器端匹配,我就可以在页面上执行其他操作。

有人能想出一种方法来实现这一目标吗? :)

有没有办法在数据源更改后触发事件?

最佳答案

我通过使用小部件上的 _busy 状态解决了该问题。以下代码位于小部件的选择函数中,因此每当有人失去焦点时就会触发此代码。

如果小部件不忙,它将完成 ajax 调用。希望这对某人有用:)

    if (data && data.length != 0) 
{
for (var i = 0; i < data.length; i++)
{
li = $(that.ul).find('li:nth-child(' + (i + 1) + ')');
if (li.length != 0 && data[i].ProductCode == that.input.val())
{
that._select(li);
return;
}
}
}
if (that._busy && that._busy != null)
{
that.busyCheck = setInterval(function () {
if (!that._busy || that._busy == null) {
clearInterval(that.busyCheck);
if (data && data.length != 0){
for (var i = 0; i < data.length; i++){
li = $(that.ul).find('li:nth-child(' + (i + 1) + ')');
if (li.length != 0 && data[i].ProductCode == that.input.val()){
that._select(li);
return;
}
}
}
}
}, 50);
}
that._AddcodeIsServerValid(false);

关于javascript - 如何在剑道组合框完成过滤器后触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23730944/

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