我在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中检索值。
答案 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);
});
}
});