Pritam Kumar
Pritam Kumar

Reputation: 77

Jquery Autocomplete Doesn't Work for The First Key

I use jQuery UI autocomplete plugin in my Struts 1 application. It works, but when I press the key for the first time it does not, but later it works.

var res=null;
$(document).ready(function()
{
    click();
});

function click()
{
    $( "#me" ).keyup(function(e)
    {
        var value=$("#me").val();
        if(e.keyCode>64 && e.keyCode<91)
        {
            callserver(value);
        }
    });
}
//var my_delay=20000;

function callserver(value)
{
    $.ajax({
        type: "POST",
        url: "<%=cPath%>/lims/index",
        data: {action:"retrive autocomplete",name:value },
        cache:false,
        })
        .done(function( namelist ){
            res=namelist.split(",");
            $( "#me" ).autocomplete({
                source: res
                });
            res=null;
            //click();
            });
}

I retrieve the value from Oracle DB.

Upvotes: 1

Views: 1737

Answers (2)

PRITAM MOHAPATRA
PRITAM MOHAPATRA

Reputation: 98

$("#me").autocomplete({
    source: function(request, response) {
        $.ajax({
            type: "POST",
            url: "<%=cPath%>/path",
            data: {action:"retrive autocomplete", name: request.term },
            cache:false,
        })
        .done(function( namelist ){
            res=namelist.split(",");
            response(res);
        });
    }
});

Upvotes: 0

Barmar
Barmar

Reputation: 781096

You don't need to write your own keypress handler to use autocomplete, it's done by the widget for you. Just initialize the widget in the $(document).ready() handler, and tell it to get the values using AJAX:

$(document).ready(function() {
    $("#me").autocomplete({
        source: function(request, response) {
            $.ajax({
                type: "POST",
                url: "<%=cPath%>/lims/index",
                data: {action:"retrive autocomplete", name: request.term },
                cache:false,
            })
            .done(function( namelist ){
                res=namelist.split(",");
                response(res);
            });
        }
    });
});

Upvotes: 2

Related Questions