与位置的div使用输入字段时在错误的地方所示jQueryUI的自动填充:固定(JqueryUi Au

2019-07-31 07:21发布

我在通过向一个获得一个网页上的“ 模式窗口div CSS属性positionfixed 。 该div包含输入字段。 特别是,我使用的是从jQueryUI的 自动完成小部件 。 有两个主要问题:

1)首先是,由于div有一个固定的位置,当你向下滚动网页时,自动完成建议不显示固定的,而是被上下移动与页面。 您可以在此看到,问题Codepen我用一个例子,其中从jQuery的网站与城市名称自动完成。

2)第二个问题是,从自动完成的建议在页面的左上角示出和未正下方的输入字段。 不幸的是,我试图在Codepen重现这个问题,但我不能。

我敢肯定,这个问题是由于CSS,特别是由jQuery的UI提供了这样的样式属性。 也许这个问题可以通过使用来解决位置选项的自动完成构件的。

我应该定义和怎么样的CSS属性?

PS:我在使用中提供的主题http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css

Answer 1:

望着jQuery UI的图书馆,我看到在<ul>元素被用来显示的建议。 jQuery UI的缺省到HTML文档,而不是追加该元素在<div>(用作“模式窗口”)的文本的输入

然而,文档显示该选项appendTo配置哪个元素自动完成<UL>应附加到。 它使用jQuery的appendTo()函数。 http://jqueryui.com/demos/autocomplete/#option-appendTo

所以,我包括一个div来包含建议:

<input type="text" id="myInput" />
<div id="container">
</div>

而在autocomplete()函数我添加的选项:

appendTo: "#container"

然后,我添加了下面的CSS

#container {
    display: block; 
    position:relative
} 
.ui-autocomplete {
    position: absolute;
}

就这样!



Answer 2:

确保只阅读@ Riapp的回答后加载的jQuery一个版本,一个我发现了这个UI的,我打了四周,可以看到,你需要配套的版本号,从来没有太多....

否则,自动完成将是一个绝对的,飞到顶。

 <script type="text/javascript"
    src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css"
    href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" />


Answer 3:

有同样的问题。 删除jquerUI基地的主题,卸载jQueryUI的库,然后重新安装jQueryUI的,现在工作得很好。 不知道你正在使用的,但我在MVC4这么多的错误,我想自杀。 祝好运。

编辑:这是真正的问题

在寻找一个旧的项目,看看是否被自动完成工作,我们发现,许多在旧项目的样式都不在较新的。 不知道如果我删除他们,但无法想象这样做。 我所要做的就是复制和粘贴那些来自我的新项目中缺少的类,一切都恢复正常。 我认为有人蓄意破坏我的项目。



文章来源: JqueryUi Autocomplete shown in wrong place when using input field in div with position:fixed