簡體   English   中英

單擊復選框輸入后將 selectInput 選項變灰 - R Shiny

[英]Grey out a selectInput choice after clicking a checkboxInput - R Shiny

從下拉列表中選擇並單擊復選框輸入后,我試圖將下拉列表中的 selectInput 選項變灰。 下面是一些我使用 shinyjs::disable 的示例代碼。 但是,在我選擇復選框之前,禁用 function 會禁用整個 selectInput。 我希望在選中復選框后禁用 selectInput 當前選項

library(shiny)

ui <- fluidPage(

  shinyjs::useShinyjs(),

  sidebarLayout(

    sidebarPanel(
      selectInput("name","Pick Name:",c("Alice","Austin"),selected = "Alice"),
      br()
      ,width = 3),

    mainPanel(

      tabsetPanel(

        tabPanel(
          "Tab",
          br(),
          checkboxInput("complete","Complete?"),
          br()
        )

      )

    )
  )
)

server <- function(input, output) {

   observeEvent(input$complete, shinyjs::disable("name"))

}

# Run the application 
shinyApp(ui = ui, server = server)

另外,有誰知道如何在多個會話中應用此功能?

要禁用 select 選項,我們可以使用shinyWidgets package 及其pickerinput ,例如:

library(shiny)
library(shinyWidgets)

names <- c("Alice","Austin","Alex")

ui <- fluidPage(
    sidebarLayout(
        sidebarPanel(
            pickerInput("myname","Pick Name:",choices = names),
            br(),width = 3),

        mainPanel(
            tabsetPanel(
                tabPanel(
                    "Tab",
                    br(),
                    checkboxInput("complete","Complete?",FALSE),
                    br()
                )
            )
        )
    )
)

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

    observeEvent(input$complete, {
        print(input$complete)
        disabled_choices <- names==c("Alex")
        updatePickerInput(
            session = session, inputId = "myname",
            choices = names,
            choicesOpt = list(
                disabled = disabled_choices,
                style = ifelse(disabled_choices,
                               yes = "color: rgba(119, 119, 119, 0.5);",
                               no = "")
            )
        )
    }, ignoreInit = TRUE)

}

# Run the application 
shinyApp(ui = ui, server = server)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM