Create a Shiny input that is disabled when the Shiny app starts. The input can
be enabled later with toggleState() or enable().
disabled(...)Shiny input (or tagList or list of of tags that include inputs) to disable.
The tag (or tags) that was given as an argument in a disabled state.
shinyjs must be initialized with a call to useShinyjs()
in the app's ui.
if (interactive()) {
library(shiny)
shinyApp(
ui = fluidPage(
useShinyjs(), # Set up shinyjs
actionButton("btn", "Click me"),
disabled(
textInput("element", NULL, "I was born disabled")
)
),
server = function(input, output) {
observeEvent(input$btn, {
enable("element")
})
}
)
}
library(shiny)
#>
#> Attaching package: ‘shiny’
#> The following object is masked from ‘package:shinyjs’:
#>
#> runExample
disabled(numericInput("num", NULL, 5), dateInput("date", NULL))
#> [[1]]
#> <div class="form-group shiny-input-container shinyjs-disabled">
#> <label class="control-label shiny-label-null" for="num" id="num-label"></label>
#> <input id="num" type="number" class="form-control" value="5"/>
#> </div>
#>
#> [[2]]
#> <div class="shiny-date-input form-group shiny-input-container shinyjs-disabled" id="date">
#> <label class="control-label shiny-label-null" for="date" id="date-label"></label>
#> <input type="text" class="form-control" aria-labelledby="date-label" title="Date format: yyyy-mm-dd" data-date-language="en" data-date-week-start="0" data-date-format="yyyy-mm-dd" data-date-start-view="month" data-date-autoclose="true" data-date-dates-disabled="null" data-date-days-of-week-disabled="null"/>
#> </div>
#>