我正在尝试有条件地更改confirm
按钮的状态,并且我希望只要length(input$id)>2
禁用它(但我可能决定稍后添加多个条件)。< / p>
我做了几次尝试,如果你能就他们不能正常工作的原因提供一些反馈,我将不胜感激。
首先, ui.R 对所有尝试都是不变的:
library(shinyjs)
shinyUI(fluidPage(
useShinyjs(),
fluidRow(
column(5, offset = 3,
titlePanel("Consent form"),
consentForm
)),
fluidRow(
column(6, offset = 4,
div(
textInput( "id", "LSU ID", ""),
textInput( "age", "Age", ""),
selectInput( "gender", "Select your gender", c("", "Male", "Female")),
actionButton("confirm", "Submit", class='btn-primary')
))
)
))
第一台服务器.R
shinyServer(function(input, output) {
observe({
toggleState("confirm", condition = length(input$id)>2)
})
})
第二台服务器.R
这里的问题可能来自于我对术语&#34;无效&#34;的误解。实际上observeEvent
的第二个元素是
每当eventExpr失效时调用的表达式。
我认为&#34;无效&#34;意味着&#34;评估为FALSE
&#34;,但显然不是。有谁能证实吗?
shinyServer(function(input, output) {
observeEvent(length(input$id)>2, {
toggleState("confirm")
})
})
第3次尝试
shinyServer(function(input, output) {
observeEvent(input$id, {
if (length(input$id)>2) {
enable("confirm")
} else {
disable('confirm')
}
})
})