自动完成问题进入bootstrap模式

Lug*_*ino 65 jquery jquery-ui-autocomplete twitter-bootstrap bootstrap-modal

我在模式对话框引导程序中的jQuery自动完成中有显示问题.

当我鼠标滚动时,结果不会保持附加到输入.

有办法解决这个问题吗?

在这里JsFiddle:

.ui-autocomplete-input {
  border: none; 
  font-size: 14px;
  width: 300px;
  height: 24px;
  margin-bottom: 5px;
  padding-top: 2px;
  border: 1px solid #DDD !important;
  padding-top: 0px !important;
  z-index: 1511;
  position: relative;
}
Run Code Online (Sandbox Code Playgroud)

编辑 我发现了问题:

.ui-autocomplete {
  position: fixed;
  .....
}
Run Code Online (Sandbox Code Playgroud)

如果模态滚动,问题仍然存在!

这里是JsFiddle/1.

Lug*_*ino 107

位置是正确的,它是"绝对的",而您需要将其指定为自动完成的选项:

$( ".addresspicker" ).autocomplete( "option", "appendTo", ".eventInsForm" );
Run Code Online (Sandbox Code Playgroud)

它可以将结果框中的任何元素锚定在哪里,我必须阻止它被锚定到表单的类!

是一个有效的JsFiddle!.

  • 完美的胜利! (10认同)
  • 或者简单地将`.ui-front`添加到模态窗口 (7认同)

小智 47

上述解决z-index问题的解决方案有效:

.ui-autocomplete { z-index:2147483647; }
Run Code Online (Sandbox Code Playgroud)

确保将其放在.js负责处理模态和自动完成逻辑的脚本之前.

  • 为我工作.无论那个说什么. (4认同)
  • 如果你看了另一个答案的评论,和你的完全一样,问题不是这样解决的! (2认同)

Fer*_*iro 26

查看appendTo文档:

当值为null时,将检查输入字段的父级是否为ui-front类.如果找到具有ui-front类的元素,则菜单将附加到该元素.

因此,只需将类"ui-front"添加到父元素,自动完成就会在模态中正确显示.


小智 20

将类"ui-front"添加到div父元素,自动完成将在PopUp For Me中正确显示.

  • 虽然可接受的答案将起作用,但我认为这应该是正确的答案,因为文档将其指示为默认行为:`如果找到了具有ui-front类的元素,则菜单将附加到该元素上。 (2认同)

小智 10

实际问题是Bootstrap Modal具有比页面中任何其他元素更高的Z-index.因此,自动完成实际上有效 - 但它隐藏在对话框后面.

您只需要在任何添加的css文件中添加它:

.ui-autocomplete {
  z-index:2147483647;
}
Run Code Online (Sandbox Code Playgroud)

  • 问题不仅在于,并没有通过将参数z-index设置得如此高来解决任何问题!问题不仅在于它仍然低于模态,而且如果你滚动页面,结果不会保持附加到输入,如果你重新阅读问题,将会解释.但问题解决了,请看上面的答案! (2认同)

小智 5

为了解决这个问题,我只需要css通过 jQuery在文件中进行更改:

.ui-front {
    z-index: 9999;
}
Run Code Online (Sandbox Code Playgroud)

注意:在 jquery-ui.css & jquery-ui.js 之后添加这个 css