我已经构建了一个闪亮的应用程序,如果用户将非数字值输入到 numericInput 中,该应用程序会弹出消息。下面的代码就是这样做的(使用shinyBS
),但它反应太快了。如果用户开始输入文本,但需要考虑一下要输入的数字,则会弹出消息。我希望在输入失去焦点时触发observeEvent,因此用户有时间输入完整值,并且只有当他们继续下一个输入时,observeEvent 才会处理错误。有什么建议么?shinyBS
如果有更好的解决方案,我不喜欢使用,我像 4 年前一样构建了这个应用程序,从那时起,闪亮的宇宙已经有了很大的发展。
library(shinyBS)
library(shiny)
ui<-shinyUI(fluidPage(
fluidRow(
numericInput("value","My Value",value=0),
bsModal("number_Message", "", trigger="", size = "small","This field only accepts numeric values.")
)
))
server<-shinyServer(function(input, output, session){
output$value<-renderText({input$value})
observeEvent(input$value,{
# browser()
if(is.na(as.numeric((input$value)))==T){
toggleModal(session, "number_Message",toggle="toggle")
updateNumericInput(session,"value","My Value",value=0)
}
})
})
shinyApp(ui = ui, server = server)