[英]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.