Unable to reset inputs using shinyjs

Following the answers here I tried to use shinyjs to reset input value by giving the id to the div in the UI and calling that in when clicked on reset. Below is my code for what I have tried.

library(shiny)
library(DT)
library(dplyr)
library(shinyjs)

#### Module 1 renders the first table
tableMod <- function(input, output, session, modelRun,reset,modelData,budget){
  
  output$x1 <- DT::renderDataTable({
    modelRun()
    isolate(
      datatable(
        modelData %>% 
          mutate(Current  = as.numeric(Current)*(budget())),
        selection = 'none', editable = TRUE
      )
    )
  })
  
  observeEvent(reset(), {
    shinyjs::reset("input-panel")
  })  
}
tableUI <- function(id) {
  ns <- NS(id)
  dataTableOutput(ns("x1"))
}

ui <- function(request) {
  fluidPage(
    div(shinyjs::useShinyjs(), id = "input-panel",
    tableUI("opfun"),
    numericInput("budget_input", "Total Forecast", value = 2),
    actionButton("opt_run", "Run"),
    actionButton("opt_reset", "Reset")
  ))
}

server <- function(input, output, session) {
  
  df <- data.frame(Channel = c("A", "B","C"),
                   Current = c(2000, 3000, 4000),
                   Modified = c(2500, 3500,3000),
                   New_Membership = c(450, 650,700),
                   stringsAsFactors = FALSE)
  
  callModule( tableMod,"opfun",
              modelRun = reactive(input$opt_run),
              reset = reactive(input$opt_reset),
              modelData = df,
              budget = reactive(input$budget_input))
  
  observeEvent(input$opt_run, {
    cat('HJE')
  })

}

shinyApp(ui, server, enableBookmarking = "url")

From the SO question, try this without the div:

  fluidPage(
        shinyjs::useShinyjs(), 
        id = "input-panel",
        tableUI("opfun"),
        numericInput("budget_input", "Total Forecast", value = 2),
        actionButton("opt_run", "Run"),
        actionButton("opt_reset", "Reset")
    )

I can't test because you did not provide a reprex. See Shiny debugging and reprex guide

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.