我在R Shiny中有一系列的textInputs,想要在textOutput中获取并显示具有焦点的文本框的ID,即光标闪烁的ID。
我正在尝试用JavaScript进行此操作,但收效甚微。
这就是我一直在努力的事情:
ui <- fluidPage(
tags$script(' Shiny.setInputValue("focused.element", $(document.activeElement )) '),
textInput(inputId = "text1", label = NULL, value = ""),
textInput(inputId = "text2", label = NULL, value = ""),
textInput(inputId = "text3", label = NULL, value = ""),
textInput(inputId = "text4", label = NULL, value = ""),
textOutput("output1")
)
server <- function(input, output, session) {
output$output1 <- renderText({ input$focused.element })
}
我希望当光标位于第一个textInput时显示“ text1”,光标位于第二个时显示text2,等等...
现在,从output1不显示任何文本。任何帮助将不胜感激!
答案 0 :(得分:1)
这吗?
library(shiny)
ui <- fluidPage(
tags$script('$(document).ready(function(){ $("input").on("focus", function(e){ Shiny.setInputValue("focusedElement", e.target.id);}); }); '),
textInput(inputId = "text1", label = NULL, value = ""),
textInput(inputId = "text2", label = NULL, value = ""),
textInput(inputId = "text3", label = NULL, value = ""),
textInput(inputId = "text4", label = NULL, value = ""),
textOutput("output1")
)
server <- function(input, output, session) {
output$output1 <- renderText({ input$focusedElement })
}
shinyApp(ui, server)