A user-friendly replacement for select boxes with the multiple attribute
multiInput(
inputId,
label,
choices = NULL,
selected = NULL,
options = NULL,
width = NULL,
choiceNames = NULL,
choiceValues = NULL,
autocomplete = FALSE
)The input slot that will be used to access the value.
Display label for the control, or NULL for no label.
List of values to select from.
The initially selected value.
List of options passed to multi (enable_search = FALSE for disabling the search bar for example).
The width of the input, e.g. 400px, or 100%.
List of names to display to the user.
List of values corresponding to choiceNames.
Sets the initial state of the autocomplete property.
A multiselect control that can be added to the UI of a shiny app.
Fabian Lindfors, "A user-friendly replacement for select boxes with multiple attribute enabled", https://github.com/fabianlindfors/multi.js.
updateMultiInput to update value server-side.
## Only run examples in interactive R sessions
if (interactive()) {
library("shiny")
library("shinyWidgets")
# simple use
ui <- fluidPage(
multiInput(
inputId = "id", label = "Fruits :",
choices = c("Banana", "Blueberry", "Cherry",
"Coconut", "Grapefruit", "Kiwi",
"Lemon", "Lime", "Mango", "Orange",
"Papaya"),
selected = "Banana", width = "350px"
),
verbatimTextOutput(outputId = "res")
)
server <- function(input, output, session) {
output$res <- renderPrint({
input$id
})
}
shinyApp(ui = ui, server = server)
# with options
ui <- fluidPage(
multiInput(
inputId = "id", label = "Fruits :",
choices = c("Banana", "Blueberry", "Cherry",
"Coconut", "Grapefruit", "Kiwi",
"Lemon", "Lime", "Mango", "Orange",
"Papaya"),
selected = "Banana", width = "400px",
options = list(
enable_search = FALSE,
non_selected_header = "Choose between:",
selected_header = "You have selected:"
)
),
verbatimTextOutput(outputId = "res")
)
server <- function(input, output, session) {
output$res <- renderPrint({
input$id
})
}
shinyApp(ui = ui, server = server)
}