禁用 selectInput/selectizeInput 中的项目

Disable an item in selectInput/selectizeInput

我的问题和这个问题差不多:

我想禁用 selectInput 菜单中的项目,类似于 pickerInput 的功能。但是我不想使用 pickerInput,我想使用 selectInput/selectizeInput.

其中一个回复提到您可以使用 HTML 将禁用的选项与您要禁用的特定值相关联。谁能在下面的代码 shell 中提供如何在 Shiny 中执行此操作的示例代码?它会类似于该线程中的条件格式吗? R Shiny: Conditional formatting selectInput items

library(shiny)

choices <- c("x", "y", "z")

ui <- fluidPage(
    selectizeInput("choices","Choices", choices = choices)
)

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

shinyApp(ui = ui, server = server)

你可以这样做:

library(shiny)

choices <- c("x", "y", "z")

ui <- fluidPage(
  selectizeInput(
    "choices", "Choices", choices = choices,
    options = list(
      render = I(
        "{
           option: function(item, escape) {
                      if (item.value === 'y') {
                        return '<div style=\"pointer-events: none; color: #aaa;\">' + escape(item.label) + '</div>';
                      }
                      return '<div>' + escape(item.label) + '</div>';
                 }
        }"
      )
    )
  )
)

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

shinyApp(ui = ui, server = server)

但是 shinyWidgets::pickerInput 更容易 ;)