In my flexdashboard code, what I am trying to do is:
code looks like this:
```{r setup, include = FALSE}
library(flexdashboard)
library(ggplot2)
library(bslib)
library(shiny)
library(tidyverse)
library(htmltools)
library(fontawesome)
library(shinyjs)
library(RMySQL)
library(shinyWidgets)
useShinyjs()
```
Home
=====================================
Sidebar {.sidebar data-width=350}
-------------------------------------
```{r}
prettyRadioButtons(
inputId = "dataChoice",
label = "Select one:",
icon = icon("check"),
choices = c("Upload File", "Data from Database"),
animation = "tada",
inline = TRUE,
status = "default",
selected = F
)
tags$div(id = "one", actionButton("submitbtn1", "Submit"))
observeEvent(input$dataChoice, {
ifelse(is.null(input$dataChoice), shinyjs::disable(id = "one"),
ifelse(input$dataChoice=='Upload File',
shinyjs::enable(id = "one"),
shinyjs::disable(id = "one"))
)}
})
```
I want to disable the submit
button when there is no radio button selected or option Data from Database
is selected. But submit button should be enabled when radio button option Upload File
is selected.
Somehow the code above is not working and the moment I click on first option, error appears and app stops abruptly. What am I doing wrong here?
I used the conditionalPanel() from below reply, but now another issue is:
conditionalPanel(
condition = "input.dataChoice == 'Upload File'", {
tags$hr(),
checkboxInput('header', 'Your Data has Header?', TRUE),
renderText(ifelse(input$header=='TRUE', "Headers present.", "No headers present.")),
tags$br(),
prettyRadioButtons(
inputId = "separator",
label = "Type:",
icon = icon("check"),
choices = c(Comma=',', Semicolon=';'),
inline = TRUE,
status = "default"
),
.....
actionButton("submit", "Submit")
}
)
Only actionButton()
is working, while other items are not shown. Not sure if conditionalPanel()
has such options?
Use conditionalPanel (https://shiny.rstudio.com/reference/shiny/1.6.0/conditionalpanel)
Notice the condition syntax. Specifically notice input.dataChoice instead of input$dataChoice
prettyRadioButtons(
inputId = "dataChoice",
label = "Select one:",
icon = icon("check"),
choices = c("Upload File", "Data from Database"),
animation = "tada",
inline = TRUE,
status = "default",
selected = F
)
conditionalPanel(
condition = "input.dataChoice == 'Upload File'",
actionButton("submitbtn1", "Submit")
)