ZenMac
ZenMac

Reputation: 259

R shiny Reset function on Selected Inputs

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

Answers (2)

tbrittoborges
tbrittoborges

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

Stéphane Laurent
Stéphane Laurent

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

Related Questions