jQuery自动完成可滚动下拉列表

时间:2011-12-09 05:06:08

标签: jquery asp.net-mvc jquery-ui jquery-autocomplete

我正在使用jQuery自动填充文本框。我的代码和脚本工作正常,但现在我需要一个'可滚动的下拉列表(沿着X轴和Y轴)而不是简单的下拉列表。

用于促进自动完成下拉列表的脚本:

$(function () {
    $("#TextBox").autocomplete({
        source: "home/search",
        dataType: 'json',
        minLength: 1,
        // max: 10,
        // scroll:true
    });
});

3 个答案:

答案 0 :(得分:7)

可以将x和/或y轴设置为可滚动,但它不是通过自动完成脚本完成的,而是通过自动完成样式完成的。该脚本不对元素的显示方式负责,只对它们如何交互负责。您希望更改的特定样式是ui-autocomplete类。

假设您想要最多200px高和250px宽的下拉(如果没有足够的结果来填充它,则允许它更小)。然后你会把它添加到你的CSS:

.ui-autocomplete { 
    /* these sets the height and width */
    max-height:200px; 
    max-width: 236px; 

    /* these make it scroll for anything outside */
    overflow-x:scroll;
    overflow-y:scroll;
}

如果您想更改尺寸,只需更改上面的尺寸即可。如果要使x轴不可滚动,但保留y,则将其更改为:

.ui-autocomplete { 
    /* same as above */
    max-height:200px; 
    max-width: 236px; 

    /* note that x is hidden now */
    overflow-x:hidden;
    overflow-y:scroll;
}  

您可以在jQuery UI autocomplete site上阅读更多内容。我已链接到右侧的“可滚动结果”部分,您可以点击“查看来源”查看完整示例。他们很好地注意到IE不支持max-height,所以你必须只为IE支持设置一个高度。

答案 1 :(得分:2)

如果有人遇到同样的问题(想要使用垂直滚动自动完成) 用这个:

.ui-autocomplete 
{
  height: 200px;
  overflow-y: auto;
}

答案 2 :(得分:1)

http://jqueryui.com/demos/autocomplete/#event-select如果遇到同样的问题,可以参考此链接

相关问题