jquery autocomplete-将数据添加到select事件列表中

时间:2013-10-08 18:30:42

标签: jquery jquery-ui autocomplete jquery-ui-autocomplete

我正在使用带有json数据源的jquery自动完成。

这是我的代码: clientId,clientName是输入字段的id。

$("#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事件中我想获得下一组结果并将其显示在显示的下拉列表中。如何实现它。任何指向正确的方向都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

我认为这应该是从search处理程序调用{​​{1}}的问题。但是,您可能已经发现,这不起作用quite right

您应该可以通过添加一个小超时来使其工作:

select

示例: http://jsfiddle.net/fTFkY/2/

该示例使用本地源但模拟AJAX请求。希望这有帮助!