【发布时间】:2020-07-23 01:19:58
【问题描述】:
我有一个 jQuery 函数,当文本输入字段超过两个字符时,我想执行该函数:
$('#textInput').on('input', displaySuggestions);
function displaySuggestions(){
if($('#textInput')[0].value.length > 2){
let searchValue = $('#textInput')[0].value;
$.myObj.getResults( searchValue, (results) => {
console.log(results);
});
}
}
如果我不使用我需要的 getResults 函数,该函数会很好地工作。它来自一个看起来像这样的插件:
(function($) {
$.myObj = {
getResults: function(value, callBack){
var req = $.ajax({
url:'http://api.my/api/name' + value
});
req.done(callBack);
}
};
}(jQuery));
该函数应记录来自 api 调用的 JSON 数据的结果。当文本输入字段中添加的字符超过两个时,它应该只返回一次结果。但是,当使用 getResults 函数时,每两个字符记录一次结果,例如,如果我用六个字母写一个单词,结果将记录 3 次。我不允许在 getResults 函数中进行更改,但如果没有修复它,我会考虑。不知道如何把我的头缠住。提前致谢!
【问题讨论】:
标签: jquery ajax api input text