jquery自动完成-在选择事件时将数据添加到列表
我将jquery自动完成与json数据源一起使用 这是我的代码: clientId、clientName是输入字段的idjquery自动完成-在选择事件时将数据添加到列表,jquery,jquery-ui,autocomplete,jquery-ui-autocomplete,Jquery,Jquery Ui,Autocomplete,Jquery Ui Autocomplete,我将jquery自动完成与json数据源一起使用 这是我的代码: clientId、clientName是输入字段的id $("#clientId").autocomplete({ source: function(request, response){ var clientId=request.term; $.ajax({ type:"GET", url:"getCl
$("#clientId").autocomplete({
source: function(request, response){
var clientId=request.term;
$.ajax({
type:"GET",
url:"getClients.htm?ClientId=" + clientId +"&ClientName=",
dataType:"json",
success: function(data){
if(pageCountClientId == 0){
data.push({clientId:"More Options",clientName:"More Options"});
pageCountClientId++;
}
else{
data.push({clientId:"Previous Options",clientName:"Previous Options"});
pageCountClientId++;
}
response($.map(data,function(value,key){
return{
label:value.clientId,
value:value.clientName
};
}));
}
});
},
minLength: 1,
select: function(event, ui){
if(ui.item.value == "More Options"){
pageCountClientId++;
}
else if(ui.item.value == "Previous Options"){
pageCountClientId--;
}
else{
$("#clientName").val(ui.item.value);
$("#clientId").val(ui.item.label);
$("#clientName").attr("disabled", "disabled");
$("#clientId").attr("disabled", "disabled");
}
return false;
},
});
因此,现在当用户单击“更多选项”值时,在选择事件中,我希望获得下一组结果,并将其显示在出现的下拉列表中。如何做到这一点。任何指向正确方向的指针都将受到欢迎。我认为这应该是从
select
处理程序调用search
的问题。然而,正如您可能已经发现的那样,这是行不通的
您应该能够通过添加一个小的超时来使其工作:
select: function(event, ui){
if(ui.item.value == "More Options"){
pageCountClientId++;
setTimeout($.proxy(function () {
$(this).autocomplete('search', this.value);
}, this), 1);
}
else if(ui.item.value == "Previous Options"){
pageCountClientId--;
setTimeout($.proxy(function () {
$(this).autocomplete('search', this.value);
}, this), 1);
}
else{
$("#clientName").val(ui.item.value);
$("#clientId").val(ui.item.label);
$("#clientName").attr("disabled", "disabled");
$("#clientId").attr("disabled", "disabled");
}
return false;
},
示例:
该示例使用本地源代码,但模拟AJAX请求。希望这有帮助 谢谢你,安德鲁!!成功了。我能够使用Auto的代理函数和搜索函数进行ajax调用complete@kayzid:很高兴它成功了!如果答案有帮助,请接受。