模态框内jQuery UI Autocomplete未正常显示问题求助
解决jQuery UI Autocomplete在模态框后方显示的问题
这个问题本质是z-index层级冲突:模态框的z-index通常设置得比较高(比如Bootstrap模态框默认是1050),而jQuery UI Autocomplete生成的下拉列表(.ui-autocomplete元素)默认z-index低于这个值,所以被模态框挡住了。给你两种靠谱的解决办法:
方法1:直接提升Autocomplete下拉列表的z-index
给.ui-autocomplete元素设置更高的z-index,确保超过模态框的层级:
.ui-autocomplete { z-index: 1060 !important; }
加!important是为了覆盖jQuery UI自带的默认样式优先级,保证生效。
方法2:把下拉列表插入到模态框内部(更推荐)
初始化Autocomplete时,通过appendTo选项将下拉列表直接挂载到模态框的DOM节点下,这样它会继承模态框的层级,从根源避免遮挡:
$("#assign-input").autocomplete({ source: function(request, response) { // 模拟你的数据库查询逻辑(用dummyjson用户数据示例) $.getJSON("https://dummyjson.com/users/search", { q: request.term }, function(res) { response(res.users.map(item => item.username)); }); }, appendTo: "#你的模态框ID" // 替换成你实际的模态框ID,比如#assign-modal });
这种方法不需要手动调z-index,DOM结构更合理,也不会和其他组件的层级产生冲突。
内容的提问来源于stack exchange,提问作者fawzan
相关产品推荐
相关产品推荐

