Jquery自动完成功能不适用于第一个密钥

时间:2014-07-31 10:28:48

标签: jquery autocomplete

我在Struts 1应用程序中使用jQuery UI自动完成插件。它可以工作,但是当我第一次按下键时它没有,但后来它可以工作。

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();
            });
}

我从Oracle DB中检索值。

2 个答案:

答案 0 :(得分:2)

您不需要编写自己的keypress处理程序来使用自动完成功能,它由小部件为您完成。只需在$(document).ready()处理程序中初始化窗口小部件,并告诉它使用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);
            });
        }
    });
});

答案 1 :(得分:0)

$("#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);
        });
    }
});