繁体   English   中英

在jQuery自动完成中获取结果建议列表

[英]Getting the result suggestion list in jquery autocomplete

我正在使用jquery自动完成插件,并且遇到了一些问题:我有很多数据,当我键入数据时,会显示一个长建议列表,并需要一个滚动条:

$("#txtName").autocomplete(data,
                                  { matchContains: true,
                                      minChars: 0,
                                      max: 3000,
                                      scroll: true,
                                      //scrollHeight: 180,
                                      width: 200
                                  });

但是,滚动条在IE中无法正常工作(这是一个已知问题,我进行了大量搜索,但未找到相关的解决方案)。

因此,我决定阻止建议列表弹出窗口,并将建议列表结果放入数组或类似的东西中,并显示在我的控件中。 我的问题是-如何获得该清单?

提前致谢!

快速浏览该插件的API,我看不到任何可让您处理服务器回调响应的事件。 您可能需要切换并使用官方的JQuery UI库来满足自动完成的需求。 有一个appendTo选项可能适合您的需求。

我找到了答案(部分,我仍然需要努力)。 我将首先发布代码,然后对其进行解释:

$(function ()
{
    var names = [
        { label: 'Java', value: '1' },
        { label: 'C++', value: '2' },
        { label: 'C#', value: '3' },
        { label: 'Jquery', value: '4' },
        { label: 'Javascript', value: '5' },
        { label: 'ASP', value: '6' },
        { label: 'Pearl', value: '7' },
        { label: 'VB', value: '8' },
        { label: 'Ajax', value: '9' },
        { label: 'Json', value: '10' }];

    $("#txtName").autocomplete({
        minLength: 2,
        source: names,
        delay: 500
    }).data("autocomplete")._renderItem = function (ul, item)
    {
        //add data to my control, need to take care of earasing each time.
        var elOptNew = document.createElement('option');
        elOptNew.text = item.label;
        elOptNew.value = item.value;
        lst.add(elOptNew);

        //this code here adds the items to the popup thats built in.(it's written in jquery-ui.min.js)
        return $("<li></li>")
            .data("item.autocomplete", item)
            .append("<a>" + item.label + "</a>")
            .appendTo(ul);
    };
});

HTML:

    <input id="txtName"/> 
    <select id="lst" size='10'></select>

添加的部分( _renderItem )每次添加一个项目,因此您可以对项目执行任何操作。 我决定将其添加到列表中。

另一件事是每次都删除列表。 我仍然需要弄清楚该怎么做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM