Is there a way to hide/disable the `Close` button on a `bsModal` window?

江枫思渺然 提交于 2019-12-04 04:19:26

问题


A bsModal window in shiny app comes with a default Close button. Is there a way that can be disabled? I tried to look up on SO for similar questions, but didn't find one matching my requirements. I think, if a user can close the window using the top right corner X button, there is not really a need for another Close button. Please advise. Following reproducible code will generate a sample bsModal window to understand my question.

library(shiny)
library(shinyBS)

if(interactive()){
  shinyApp(
    ui <- fluidPage(
      actionButton("open", "Open"), #action button to trigger the modal window.
      bsModal("id1", "Box 1", "open", size = "small",
              HTML(paste("A simple modal window."))
              )
      ),

    server <- function(input,output,session){

    }
  )
}

回答1:


This should do it

library(shiny)
library(shinyBS)

if(interactive()){
  shinyApp(
    ui <- fluidPage(
      actionButton("open", "Open"), #action button to trigger the modal window.
      bsModal("id1", "Box 1", "open", size = "small",
              HTML(paste("A simple modal window.")),
              tags$head(tags$style("#id1 .modal-footer{ display:none}"))
      )
    ),

    server <- function(input,output,session){

    }
  )
}



回答2:


Alternatively to @PorkChop's solution, you can write the modal without shinyBS:

library(shiny)

shinyApp(
  ui <- fluidPage(
    tags$button(class="btn btn-default", 
                "data-toggle"="modal", "data-target"="#simplemodal",
                "Open modal"),
    tags$div(
      id = "simplemodal",
      class="modal fade", role="dialog",
      tags$div(
        class="modal-dialog",
        tags$div(
          class="modal-content",
          #### Header ####
          tags$div(
            class="modal-header",
            tags$button(
              type="button", class="close", "data-dismiss"="modal",
              HTML("&times;")
            )
          ),
          #### Body ####
          tags$div(
            class="modal-body",
            HTML("A simple modal window")
          ),
          #### Footer (remove it if you want) ####
          tags$div(
            class="modal-footer",
            tags$button(
              type="button", class="btn btn-default", "data-dismiss"="modal",
              "Close"
            )
          )
        )
      )
    )
  ),

  server <- function(input,output,session){

  }
)


来源:https://stackoverflow.com/questions/46241308/is-there-a-way-to-hide-disable-the-close-button-on-a-bsmodal-window

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!