I have a flexdashboard and there is an action button that does this:
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success",
onClick="location.href='#section-your-results';")
then an observer that does this:
observeEvent(input$submit,{
some calculation
})
The problem is that the onClick part is executed before the observeEvent is triggered. So the calculation doesn't apply to the section I'm jumping to.
What i want to do is this:
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success")
and then have an observer that does this:
observeEvent(input$submit,{
some calculation
useShinyjs()
runjs("location.href='#section-your-results';")
}))
But for some reason the runjs
command isn't being executed (I also tried replacing the location.href
with an alert
to confirm. Any idea on what is going wrong? I have seen this answer and tried that approach as well with no luck.
Here is (for me) a reproducible example - I expect an alert box to pop up when I click submit, but it doesn't for me
---
title: "reprex shinyjs rmd"
output:
flexdashboard::flex_dashboard:
orientation: rows
vertical_layout: scroll
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shinyjs)
useShinyjs(rmd = TRUE)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
onclick("submit",runjs('alert("Hello! I am an alert box!!");'))
```
### Chart B
```{r}
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success")
```