我的闪亮应用程序有另一个问题。目标是在用户按下actionButton时禁用我的应用程序中的某些输入。我找到了this解决方案,它适用于textinputs和数字输入,但奇怪的是不适用于selectinput或selectizeinput。我知道解决方案包含某种方式使用javascript,但我不知道如何。
提前感谢您的帮助!
编辑:
也许我还没说清楚。对不起大家!我将添加必要的代码块。
这是链接的禁用功能。它适用于actionButtons和数字输入,但不适用于选择或选择输入。
disableActionButton <- function(id,session) {
session$sendCustomMessage(type="jsCode",
list(code= paste("$('#",id,"').prop('disabled',true)"
,sep="")))
disableselectButton <- function(id,session) {
session$sendCustomMessage(type="jsCode",
list(code= paste("$('#",id,"').prop('select',false)"
,sep="")))
disableselectButton <- function(id,session) {
session$sendCustomMessage(type="jsCode",
list(code= paste("$('#",id,"').prop('hide',false)"
,sep="")))
这是未被禁用的输入示例。正如我所说,解决方案可能是在javascript中,但我甚至不知道基本原理。我尝试过不同的问题,例如hide = true oder select = false,这不起作用(你可以看到上面没有工作的函数)。
selectInput("algorithmicMethod1",
label=h5("Berechnungsalgorithmus erster Wahl"),
c("RoT","Pickands"),
selected="RoT"),
conditionalPanel(condition="input.algorithmicMethod1 =='RoT'",
selectInput("algorithmicMethod2",
label=h5("Berechnungsalgorithmus zweiter Wahl"),
"Pickands",
selected="Pickands")),
conditionalPanel(condition="input.algorithmicMethod1 =='Pickands'",
selectInput("algorithmicMethod2",
label=h5("Berechnungsalgorithmus zweiter Wahl"),
"RoT",
selected="RoT"))
那么,有没有其他方法可以禁用select / selectize-Inputs?
再次感谢。:)
答案 0 :(得分:4)
解决方案:您可以使用我的软件包shinyjs - 您只需致电shinyjs::disable(id)
即可。
解释为什么它不是非常简单:问题是当你使用selectize时,它会创建另一个选择框,它只是非常漂亮的HTML,但它不是真正的HTML输入元素,所以它没有&# 39; t响应disabled
属性,就像真正的HTML标签一样。如果你查看selectize.js文档,可以使用JS来禁用选择,但是闪亮不太方便。 :(
如果您不使用选择(selectInput(selectize = FALSE)
),禁用将会正常工作。