Отключить элемент в выпадающем списке selectinput - PullRequest
0 голосов
/ 15 октября 2018

Как отключить элемент в раскрывающемся меню selectInput()?

Например;

library(shiny)
ui <- fluidPage(selectInput("id1","Select",choices=c("A","B","C")))
server <- function(input, output) {}
shinyApp(ui, server)

enter image description here

Скажем, по какой-то причине опция C не может быть выбрана из-за некоторой логики.Я бы хотел, чтобы пользователь мог видеть все параметры, но параметр C отключен / не выбран.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Вы можете сделать это, используя pickerInput из пакета inyWidgets :

library(shiny)
library(shinyWidgets)
ui <- fluidPage(
  pickerInput(
    inputId = "id1",
    label = "Select :",
    choices = c("A", "B", "C"),
    multiple = FALSE,
    choicesOpt = list(
      disabled = c("A", "B", "C") %in% c("C")
    )
  ),
  verbatimTextOutput(outputId = "result")
)
server <- function(input, output) {
  output$result <- renderPrint(input$id1)
}
shinyApp(ui, server)

Это также возможно сделать с сервера, см. Пример в ?updatePickerInput

0 голосов
/ 16 октября 2018

Я считаю, что это невозможно сделать с помощью стандартного блеска.Вы можете попробовать применить некоторую магию css / js, если вы ее знаете (например, превратить невыбираемые элементы в красный цвет и дать пользователю сообщение, если они все равно его выбрали, или, возможно, вы можете напрямую отключить нажатие на них с помощью js / css,не уверен, см. sendCustomMessage()).

Другой вариант - использовать updateSelectInput() для удаления ненужных элементов из раскрывающегося списка, когда вам это нужно.

обновление:

Я сделалбыстрый поиск по нему - как я вижу, это можно сделать с помощью опции html disabled, например,

<select>
  <option value="volvo" disabled>Volvo</option>
  <option value="saab">Saab</option>
  <option value="vw">VW</option>
  <option value="audi">Audi</option>
</select>

Все, что вам нужно сделать, это сгенерировать блестящий selectInput на сервере (возможно, с помощью renderUI()) и добавьте эту опцию disabled к элементам, которые необходимо отключить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...