模态对话框打开时默认打开下拉菜单

Posted

技术标签:

【中文标题】模态对话框打开时默认打开下拉菜单【英文标题】:Dropdown menu opened by default when modal dialog opens 【发布时间】:2021-09-11 17:21:59 【问题描述】:

以thread 为例,我添加了一个下拉菜单来选择表格列。

但是,当模式打开时,列表菜单应该关闭。

有没有办法使用 javascript 或其他方法来打开模式对话框并默认关闭下拉菜单?

library(shiny)
library(shinyjs)
library(shiny.semantic)
library(DT)

modal.js <- "$('.ui.modal').modal('show');
             $('#my_table').show().trigger('shown');"

ui <- semanticPage(
    suppressDependencies("bootstrap"),
    useShinyjs(),
    div(
        class = "ui modal",
        div(class = "header", "Modal header"),
        div(class = "content",
            div(class = "ui raised segment",
                selectInput(inputId = "picker",
                            label = "Select column",
                            choices = names(iris),
                            selected = names(iris)[-1],
                            multiple=T),
                br(),
                DT::dataTableOutput("my_table")))
    ),
    div(class = "ui basic button action-button", id = "open_modal", "Open modal ui")
)

server <- function(input, output, session) 
    output$my_table = DT::renderDataTable(head(iris[,input$picker]))
    observeEvent(input$open_modal, runjs(modal.js))


shinyApp(ui, server, options = list(launch.browser = TRUE))

【问题讨论】:

【参考方案1】:

尝试selectizeInput 中的选项openOnFocus = FALSE,如下所示。

selectizeInput(inputId = "picker",
                        label = "Select column",
                        choices = names(iris),
                        selected = names(iris)[-1],
                        options = list(openOnFocus = FALSE), 
                        multiple=T),

【讨论】:

以上是关于模态对话框打开时默认打开下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

QT模态对话框及非模态对话框

使用css或js关闭时如何向右滑动bootstrap 4模态对话框

QT笔记之模态对话框及非模态对话框

javascript 从其他模态打开/从其他模态打开时的堆栈引导模态

关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)

mfc非模态对话框