Sto provando a scrivere una funzione javascript per estendere l'R lucido action button demo. Vorrei che l'utente fosse in grado di inserire un numero facendo clic sul pulsante di azione e premendo Invio quando hanno selezionato il modulo di immissione del numero. Il codice per ui.R è:Utilizzo tasto invio con pulsante azione in R lucido
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")
)
))
e server.R:
shinyServer(function(input, output) {
ntext <- eventReactive(input$goButton, {
input$number
})
output$nText <- renderText({
paste(ntext(), input$goButton)
})
})
ho inserito il seguente JavaScript in un file chiamato enter_button.js all'interno della www/cartella:
$("#number").keyup(function(event){
if(event.keyCode == 13){
$("#goButton").click();
}
});
Tuttavia, quando eseguo l'app, selezionare il modulo di immissione del numero e premere invio il pulsante di azione non viene incrementato, ma viene incrementato se si fa clic su di esso. In alternativa, ho anche provato semplicemente premendo entrare in qualsiasi punto del documento con:
$(document).keyup(function(event){
if(event.keyCode == 13){
$("#goButton").click();
}
});
e che ha funzionato, quindi il mio sospetto è che il jQuery non riesce a trovare l'elemento #NUMBER. Grazie in anticipo!