【发布时间】:2021-12-14 03:13:22
【问题描述】:
我有一个多个 = TRUE 的 selectinput,一旦用户选择多个选项,我需要禁用 selectinput。但是一旦我选择了第一个选项,selectinput 就会禁用,并且不允许我选择第二个选项。我使用了以下代码。
library(shiny)
library(shinyjs)
ui <- fluidPage(
br(),
useShinyjs(),
fluidRow(
column(
width = 6,
selectInput(inputId = "check1", label = "Choose", choices = c("choice A","choice B","choice C"),multiple = T),
verbatimTextOutput(outputId = "res1")
)
)
)
server <- function(input, output, session) {
flag_lifecycle <- reactiveValues(val = "Yes")
output$res1 <- renderPrint({
input$check1
})
observeEvent(input$check1, {
shinyjs::disable("check1")
})
}
shinyApp(ui = ui, server = server)
我得到的输出
这里,只有在多选时才应该禁用 selectinput。
感谢您提供任何帮助。提前致谢!
【问题讨论】:
-
在您的
observeEvent()中尝试disableafter <- length(input$check1) if (disableafter >= 2) shinyjs::disable("check1") -
感谢您的回复@YBS。当用户选择两个以上的选项时,它工作正常。如果用户只选择一个选项怎么办。
-
那么它没有被禁用。
标签: r shiny shiny-reactivity