1
假设我们有一组8个复选框(8个字母)和一个打印所有选中复选框标签的动作按钮。我想要做什么,根据条件启用和禁用操作按钮的状态。条件是如果所选复选框的数量在2到5之间,那么应该启用该按钮,否则禁用该按钮。要更改按钮的状态,我想使用shinyjs
包中的函数enable
,disable
或toggleState
函数。当按钮被启用时,我将能够触发一个事件来打印所选项目的数量。 这里是我试过至今:如何根据R Markdown文档中闪亮元素的条件禁用按钮?
---
title: "Disable Button"
runtime: shiny
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(shinyjs)
library(shiny)
```
```{r, echo=FALSE}
checkboxGroupInput("param_group", label = h3("Letters"),
choices = LETTERS[1:8])
actionButton('action', "Print")
result<-reactive({
length(input$param_group)
})
observe({
if(result()>1 & result()<=5)
enable("action")
else
disable("action")
})
txt<-eventReactive(input$action,{
cat("Number of letters selected: ",length(input$param_group))
})
renderPrint({
txt()
})
```
这就是我一直在寻找。谢谢! – sanyi14ka
不幸的是,'rmd = TRUE'是必需的,不能自动完成,因为我无法找到一个可靠的方法来知道它是从闪亮的应用程序还是从Rmd调用,因为它们之间有一条非常细的线。我问rstudio这件事,他们也找不到合适的解决方案,但那是2年前。如果你有一个想法如何做到这一点我打开的建议:) –