查询任意 html 元素,例如使用 shinyjs 查看它是否被禁用
query an arbitrary html element, e.g. to see if it is disabled, with shinyjs
shinyjs 可以做类似 if(is_disabled("#my_element_id")) do_something()
的事情吗?
我希望能够在执行其他操作之前查看特定 HTML 元素是否被禁用(通过 shinyjs 或其他方式)。
没有这个功能。答案取决于你到底想要什么。以下内容可能有所帮助:
library(shiny)
library(shinyjs)
jsCode <- 'shinyjs.isDisabled = function(params) {
var el = $("#radiobtns");
Shiny.setInputValue("disabled", el.prop("disabled"));
}'
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode, functions = "isDisabled"),
actionButton("button", "Disable radio buttons"),
radioButtons("radiobtns", "Radio buttons", c("Yes", "No"))
)
server <- function(input, output) {
observeEvent(input$button, {
toggleState("radiobtns")
js$isDisabled()
})
observeEvent(input$disabled, {
if(input$disabled){
cat("disabled\n")
}else{
cat("enabled\n")
}
})
}
shinyApp(ui = ui, server = server)
shinyjs 可以做类似 if(is_disabled("#my_element_id")) do_something()
的事情吗?
我希望能够在执行其他操作之前查看特定 HTML 元素是否被禁用(通过 shinyjs 或其他方式)。
没有这个功能。答案取决于你到底想要什么。以下内容可能有所帮助:
library(shiny)
library(shinyjs)
jsCode <- 'shinyjs.isDisabled = function(params) {
var el = $("#radiobtns");
Shiny.setInputValue("disabled", el.prop("disabled"));
}'
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode, functions = "isDisabled"),
actionButton("button", "Disable radio buttons"),
radioButtons("radiobtns", "Radio buttons", c("Yes", "No"))
)
server <- function(input, output) {
observeEvent(input$button, {
toggleState("radiobtns")
js$isDisabled()
})
observeEvent(input$disabled, {
if(input$disabled){
cat("disabled\n")
}else{
cat("enabled\n")
}
})
}
shinyApp(ui = ui, server = server)