Javascript 3个字符后显示的自动完成列表

Javascript 3个字符后显示的自动完成列表,javascript,jquery,ajax,autocomplete,Javascript,Jquery,Ajax,Autocomplete,当用户在文本框中键入时,我将显示自动完成列表。当usr输入时,我调用AJAX调用并从服务器获取结果,然后在自动完成中显示。在文本框中输入2或3个字符后,一切正常,将显示自动完成列表。但若我只输入一个字符,那个么列表就不会显示。我跟踪了我的代码,成功调用了ajax调用,但未能显示autocomplete。 这是我的密码:- $('.search_').each(function () { var id=this.id;

当用户在文本框中键入时,我将显示自动完成列表。当usr输入时,我调用AJAX调用并从服务器获取结果,然后在自动完成中显示。在文本框中输入2或3个字符后,一切正常,将显示自动完成列表。但若我只输入一个字符,那个么列表就不会显示。我跟踪了我的代码,成功调用了ajax调用,但未能显示autocomplete。 这是我的密码:-

             $('.search_').each(function () {
             var id=this.id;
              $('#'+this.id).unbind("propertychange change keyup paste input").on("propertychange change keyup paste input", function(e){
               if(e.keyCode === 13){
            $('#'+this.id+"_search").click();
            }
            var inputId=$("#"+id+"_val").val(); 
                var gridId=id.substring(0,SecondIndexOf("_",id));
                var url='dtmReader.php';
                var a='{"functioncd":"dataspin","userguid":"'+$('#uid').val()+'","sessguid":"'+$('#sessid').val()+'","transguid":"","tablename":"'+$('#tblName_'+gridId).val()+'", "qufield0":"'+inputId+'","quvalue0":"'+$('#'+this.id).val()+'"}';
                    request = $.ajax({
                      dataType: 'text',
                   type: "POST",
                    url: url,
                     data:{str:a}
                 });
         request.done(function(response, textStatus, jqXHR) {
         var response12=JSON.parse(response.split("{{").join("{"));
            var autoCompleteArray=[];
            for(var i=0;i<response12.length;i++){
            autoCompleteArray.push(response12[i].datavalu);
            }
            console.log(autoCompleteArray);
            $("#"+id).autocomplete({ source: autoCompleteArray,
            select: function (event, ui) { 
            $('#'+this.id+"").val(ui.item.value);
            $('#'+this.id+"_search").click();
            $("#"+this.id+"_searchField").val();
            }});
         });
         request.fail(function(jqXHR, textStatus, errorThrown) {
          //   console.log(textStatus);
         });
                    });
             });     
$('.search')。每个(函数(){
var id=this.id;
$('#'+this.id).解除绑定(“propertychange-change-keyup粘贴输入”).打开(“propertychange-change-keyup粘贴输入”,函数(e){
如果(如keyCode===13){
$(“#”+this.id+“_搜索”)。单击();
}
var inputId=$(“#”+id+“_val”).val();
var gridId=id.substring(0,SecondIndexOf(“x”,id));
var url='dtmReader.php';
变量a='{“functioncd”:“dataspin”,“userguid”:“+$('.'uid').val()+”,“sessguid”:“+$('.'sessiond').val()+”,“transguid”:““tablename”:“+$('.'tblName.'+gridId).val()+”,“qfield0”:“+inputId+”,“quvalue0”:“+$('.'tblName.+this.id).val()+”;
请求=$.ajax({
数据类型:“文本”,
类型:“POST”,
url:url,
数据:{str:a}
});
完成(函数(响应、文本状态、jqXHR){
var response12=JSON.parse(response.split(“{”).join(“{”);
var自动完成阵列=[];
对于(var i=0;i

我假设您使用的是jQuery UI autocomplete,您可以将
minLength
设置为
1

$("#"+id).autocomplete({ source: autoCompleteArray, minLength: 1, .. });
发件人:

minlength:用户在输入前必须输入的最小字符数 执行搜索。零对于只有少量数据的本地数据很有用 项,但在使用单个字符时应使用更高的值 搜索可以匹配几千个项目


您在这里使用的是jQuery UI autocomplete吗?还是其他插件?是的,它的jQuery UI autocomplete。我在这里添加了我页面的所有js和CSS。服务器代码中是否设置了任何限制?确实没有足够的疑难解答信息可供任何人真正帮助。请在浏览器控制台中检查请求本身,并查看具体内容返回at,这是您期望的结果否,在输入单个字符后,我将从这一行的console.log(autoCompleteArray)中的服务器获取结果,但无法看到这会导致jquery自动完成设置代码中的断点,然后逐步执行。如果没有复制问题的演示,很难进行故障排除,这无法解释OP已返回数据但未显示的原因
$("#"+id).autocomplete({ source: autoCompleteArray, minLength: 1, .. });