Reputation: 259
I was trying to implement reset action button for selected input as like this
selectInput("show", 'Test',names(data4), multiple=TRUE, selectize=TRUE,selected = c('xx','YY'))
Reset
observeEvent(input$reset, {
reset("show")})
But this is only removing newly selected items, The selected(XX and YY)remains. How to reset all ?
Upvotes: 0
Views: 222
Reputation: 1005
This solution should also work in modern shiny versions:
library(shiny)
library(dplyr)
ui= fluidPage(
sidebarLayout(
sidebarPanel(
selectizeInput(inputId= "cyl", label= "cyl",
choices= NULL,
selected= sort(unique(mtcars$cyl))[1],
multiple=T)
),
mainPanel(
tableOutput("tab")
)
)
)
server= function(input, output,session) {
updateSelectizeInput(
session = session,inputId ="cyl",
choices=sort(unique(mtcars$cyl)),
selected=sort(unique(mtcars$cyl))[1],
server = TRUE,
options = list(
onFocus = I("
function() {
this.clear();
}")
)
)
df_filtered= reactive({
mtcars %>%
{if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)}
})
output$tab= renderTable(df_filtered())
}
shinyApp(ui, server)
Upvotes: 1
Reputation: 84519
library(shiny)
onInitialize <- "
function(){
var select = this.$input[0];
$('#reset').on('click', function(){
select.selectize.setValue([]);
});
}
"
shinyApp(
ui = fluidPage(
actionButton("reset", "Clear selections"),
selectizeInput("show", "Test",
choices = c("a", "b", "c", "d"),
selected = c("a", "b"),
multiple = TRUE,
options = list(
onInitialize = I(onInitialize)
)
)
),
server = function(input, output){}
)
Upvotes: 2