gpt4 book ai didi

javascript - 使用 uiOutput 用 Shiny 的键盘触发 actionButton

转载 作者:行者123 更新时间:2023-12-01 01:05:01 24 4
gpt4 key购买 nike

我喜欢在 Shiny 的应用程序中单击键盘上的 Enter 键时触发操作按钮。当我将 actionButton 放入 ui 中时它可以工作,但与 uiOutput 一起使用时它不起作用。

library(shiny)

jscode <- '
$(function() {
var $els = $("[data-proxy-click]");
$.each(
$els,
function(idx, el) {
var $el = $(el);
var $proxy = $("#" + $el.data("proxyClick"));
$el.keydown(function (e) {
if (e.keyCode == 13) {
$proxy.click();
}
});
}
);
});
'

ui <- fluidPage(
tags$head(tags$script(HTML(jscode))),
uiOutput("ui")
)

server <- function(input, output, session) {
output$ui <- renderUI({
tagList(
tagAppendAttributes(passwordInput("user_pw", "Passwort",
value = ""),
`data-proxy-click` = "user_login"
),
actionButton("user_login", "Anmelden")
)
})

observeEvent(input$user_login, {
cat("clicked", "\n")
})
}

shinyApp(ui, server)

最佳答案

这应该做:

library(shiny)

jscode <- '$(document).keyup(function(e) {
if (e.key == "Enter") {
$("#user_login").click();
}});'

ui <- fluidPage(
tags$head(tags$script(HTML(jscode))),
uiOutput("ui")
)

server <- function(input, output, session) {

output$ui <- renderUI({
tagList(
tagAppendAttributes(passwordInput("user_pw", "Password",value = ""),`data-proxy-click` = "user_login"
),
actionButton("user_login", "Anmelden")
)
})

observeEvent(input$user_login, {
cat("clicked", "\n")
})
}

shinyApp(ui, server)

关于javascript - 使用 uiOutput 用 Shiny 的键盘触发 actionButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com