press Button “enter” key action in shiny Math.random()
특정 페이지에서만 js를 실행하는 가장 좋은 방법
\ttags$head(tags$script(HTML(
\t\t"$(document).keyup(function(event) {
\t\t\tif ($('#logInsignin').length > 0) {
\t\t\t\tif (event.keyCode == 13) {
\t\t\t\t\t$('#logInsignin').click();
\t\t\t\t}
\t\t\t}
\t\t});"
\t))),
removeUI(selector = "button#logInsignin")
removeUI(selector = "button#logInsignin")
removeUI(selector = “button#logInsignin”)
removeUI(selector = "button#logInsignin")
#tags$head(tags$script(src = "../../www/AAA.js")),
tags$head(tags$script(HTML(
"$(document).keyup(function(event) {
if ($('#BB').is(':focus') && (event.keyCode == 13)) {
$('#CC').click();
}
});"
))),
# tags$head(tags$script(src = "enter_button.js")),
tags$head(tags$script(HTML(
"$(document).keyup(function(event) {
if ($('#logInpassword').is(':focus') && (event.keyCode == 13)) {
$('#logInsignin').click();
}
});"
))),
https://stackoverflow.com/questions/31415301/shiny-responds-to-enter
library(shiny)
ui <- fluidPage(
##############
tags$script(
'$(document).on("keyup", function(e) {
if(e.keyCode == 13){Shiny.onInputChange("ENTERKeyPressed", Math.random());}
});'
),
#############
textInput( "logInusername", "Login", placeholder = "Username"),
passwordInput("logInpassword", "PASSWORD", placeholder = "Password"),
actionButton( "logInsignin", "Sign in"),br(),
verbatimTextOutput("result")
)
server <- function(input, output, session){
observeEvent({input$logInsignin
input$ENTERKeyPressed}, {
if((input$logInusername)!="") {
output$result <- renderText({
paste0("Welcome ", input$logInusername)
})
}else{
print("Your username is incorrect - please try again.")
}
})
}
shinyApp(ui, server)
js <- '
$(document).on("keyup", function(e) {
if(e.keyCode == 13){
Shiny.onInputChange("keyPressed", Math.random());
}
});
'
library(shiny)
ui <- fluidPage(
tags$script(js),
textInput("title", label = "Title"),
plotOutput("ggplot")
)
server <- function(input, output, session){
Title <- reactiveVal()
observeEvent(input[["keyPressed"]], {
Title(input[["title"]])
})
output[["ggplot"]] <- renderPlot({
ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width)) +
geom_point() +
ggtitle(Title())
})
}
shinyApp(ui, server)