自动填充功能显示在文本框的下方

时间:2013-07-27 09:05:43

标签: javascript jquery css asp.net-mvc html5

我在MVC Razor中创建了一个页面,其中包含一个文本框,并且具有自动完成功能。我的问题是自动填充结果在第一次使用时显示在文本框的下方(如this picture所示),但随后出现在正确的位置(即正好位于文本框下方)。为什么会这样?

我的CSS如下:

.ui-autocomplete {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 2000;
    float: left;
    display: block;
    min-width: 160px;
    _width: 160px;
    padding: 0px 0;
    margin: 2px 0 0 0;
    list-style: none outside none;
    background-color: #ffffff;
    border-color: #ccc;
    border-color: rgba(0, 0, 0, 0.2);
    border-style: solid;
    border-width: 1px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
    *border-right-width: 2px;
    *border-bottom-width: 2px;
}

我的HTML如下:

<input class="contentPicker input-xxlarge ui-autocomplete-input valid"
    id="Content" name="Content" placeholder="Select a content"
    type="text" value="" autocomplete="off">

1 个答案:

答案 0 :(得分:1)

你不应该从jquery ui覆盖任何定位css。当然,它会使事情表现得很奇怪。

第一次显示列表时,正在读取你的css,但后续搜索可能会用内联样式覆盖你的css

jquery-ui是即插即用解决方案,如果您在页面中包含jquery-ui css文件,则不需要执行任何操作。他们有一个非常先进的主题滚轮,为您照顾所有的造型,所以你不必乱用它