javascript - 在 R Shiny 中使用 Enter 键和操作按钮

标签 javascript r shiny

我正在尝试编写一个javascript函数来扩展R Shiny action button demo 。我希望用户能够通过单击操作按钮并在选择数字输入表单时按 Enter 键来输入数字。 ui.R 的代码是:

shinyUI(pageWithSidebar(
  headerPanel("actionButton test"),
  sidebarPanel(
    tags$head(tags$script(src = "enter_button.js")), 
    numericInput("number", "N:", min = 0, max = 100, value = 50),
    br(),
    actionButton("goButton", "Go!"),
    p("Click the button to update the value displayed in the main panel.")
  ),
  mainPanel(
    verbatimTextOutput("nText")
  )
))

和服务器.R:

shinyServer(function(input, output) {
 ntext <- eventReactive(input$goButton, {
    input$number
  })

  output$nText <- renderText({
    paste(ntext(), input$goButton)
  })
})

我在 www/文件夹中名为 Enter_button.js 的文件中包含了以下 JavaScript:

$("#number").keyup(function(event){
    if(event.keyCode == 13){
        $("#goButton").click();
    }
});

但是,当我运行应用程序时,选择数字输入表单并按回车键,操作按钮不会增加,但如果单击它,它就会增加。或者,我还测试了只需在文档中的任意位置按 Enter 键即可:

$(document).keyup(function(event){
    if(event.keyCode == 13){
        $("#goButton").click();
    }
});

这有效,所以我怀疑 jQuery 找不到 #number 元素。提前致谢!

最佳答案

我能够使用 jQuery is(":focus") 函数解决这个问题,我使用的代码是:

$(document).keyup(function(event) {
    if ($("#number").is(":focus") && (event.key == "Enter")) {
        $("#goButton").click();
    }
});

关于javascript - 在 R Shiny 中使用 Enter 键和操作按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32335951/

相关文章:

javascript - 如何在ReactJs上使轮播自动更改而不是单击带有循环的onclick

r - 如何同时对数组中的所有矩阵进行计算

r - 逻辑回归返回错误,但在减少的数据集上运行正常

javascript - 如何将回调功能添加到 signalR 中的 hubClass 以将当前工作状态更新到客户端并延迟?

javascript - 管理用于 HTML Canvas 的对数数组数据

r - 如何从 R 中的数据框中去除美元符号 ($)?

javascript - 将多个项目粘贴到 selectizeInput [ Shiny ]

r - dplyr-使用变量名在多个列上分组

R 获取 : object '.xts_chob' not found 错误

javascript - 如何重写dojo函数