-
-
Save xiaodaigh/6810928 to your computer and use it in GitHub Desktop.
library(shiny) | |
disableActionButton <- function(id,session) { | |
session$sendCustomMessage(type="jsCode", | |
list(code= paste("$('#",id,"').prop('disabled',true)" | |
,sep=""))) | |
} | |
shinyServer(function(input, output,session) { | |
observe({ | |
if(input$btn1 == 0) return() | |
disableActionButton("btn2",session) | |
}) | |
}) |
library(shiny) | |
shinyUI(basicPage( | |
tags$head(tags$script(HTML(' | |
Shiny.addCustomMessageHandler("jsCode", | |
function(message) { | |
console.log(message) | |
eval(message.code); | |
} | |
); | |
'))) | |
,actionButton("btn1","Disable the other button") | |
,actionButton("btn2","Button") | |
) | |
) |
Hi, you can disable select inputs (and almost any other input) using my new package shinyjs with a simple function call shinyjs::disable(id)
https://github.com/daattali/shinyjs
Example:
library(shiny)
library(shinyjs)
runApp(shinyApp(
ui = fluidPage(
useShinyjs(),
selectInput("test", "Select once", letters),
actionButton("submit", "Choose")
),
server = function(input, output, session) {
observeEvent(input$submit, {
disable("test")
})
}
))
The reason disabling selectize inputs and some other inputs don't just work is because they use a special javascript library to construct the tag instead of plain HTML. shinyjs
is meant to help shiny app developers do these kinds of small tasks with normal R code instead of fiddling with javsacript
Thank you Dean, that was very helpful
can we do a similar one to enable a disabled button like below:
enableActionButton <- function(id,session) { session$sendCustomMessage(type="jsCode", list(code= paste("$('#",id,"').prop('enabled',true)" ,sep=""))) }
Hi, unfortunately the last comment didn't work for me. It should be as below - the property to change is still the 'disabled' property
enableActionButton <- function(id,session) {
session$sendCustomMessage(type="jsCode",
list(code= paste("$('#",id,"').prop('disabled',false)"
,sep="")))
}
Does anyone know how to do it? I have some questions, I want to disable certain select inputs, this example only works for actionbutton, can any one tell me how to disable select inputs?
Thanks very much.