我正在尝试编写一个
JavaScript函数来扩展R闪亮的
action button demo.我希望用户能够输入一个数字,只要点击操作按钮,并通过点击输入,当他们选择了数字输入表单. 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")
)
))
和server.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();
}
});
但是,当我运行应用程序时,选择号码输入表单,然后点击进入操作按钮不增加,但如果点击它,它会增加.或者,我也测试了,只需点击进入文档的任何地方:
$(document).keyup(function(event){
if(event.keyCode == 13){
$("#goButton").click();
}
});
所以我的怀疑是jQuery找不到#number元素.提前致谢!
解决方法
我可以使用jQuery is(“:focus”)函数来计算出来,我使用的代码是:
$(document).keyup(function(event) {
if ($("#number").is(":focus") && (event.keyCode == 13)) {
$("#goButton").click();
}
});