jQuery,如果输入文本包含两个以上的字符,则在输入中显示文本可以多次工作。(每两个字符)
我有一个jQuery函数,当文本输入字段包含两个以上字符时,我希望执行该函数:jQuery,如果输入文本包含两个以上的字符,则在输入中显示文本可以多次工作。(每两个字符),jquery,ajax,api,input,text,Jquery,Ajax,Api,Input,Text,我有一个jQuery函数,当文本输入字段包含两个以上字符时,我希望执行该函数: $('#textInput').on('input', displaySuggestions); function displaySuggestions(){ if($('#textInput')[0].value.length > 2){ let searchValue = $('#textInput')[0].value; $.myObj.getResults( s
$('#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函数时,结果每两个字符记录一次,例如,如果我用六个字母写一个单词,结果将记录三次。我不允许在GETRESULT函数中进行更改,但是如果周围没有修复,我会考虑。我不知道该怎么做。提前谢谢 如果希望只返回一次结果,请使用相应的off方法删除处理程序
function displaySuggestions(){
if ($('#textInput')[0].value.length > 2) {
let searchValue = $('#textInput')[0].value;
$.myObj.getResults( searchValue, (results) => {
console.log(results);
});
$('#textInput').off('input', displaySuggestions);
}
}
如果要在每次输入超过2个字符时调用结果(例如,用户删除输入并重新键入),请在getResults()调用周围添加一个保护
让displayResults=true;
函数显示建议(){
让searchValue=$('#textInput')[0].value;
如果(显示结果){
如果(searchValue.length>2){
显示结果=假;
$.myObj.getResults(searchValue,(results)=>{
控制台日志(结果);
});
}
}else if(searchValue.length<2){
displayResults=true;
}
}
let displayResults = true;
function displaySuggestions() {
let searchValue = $('#textInput')[0].value;
if (displayResults) {
if (searchValue.length > 2) {
displayResults= false;
$.myObj.getResults( searchValue, (results) => {
console.log(results);
});
}
} else if (searchValue.length < 2) {
displayResults = true;
}
}