R:在拼写错误的情况下使用shinyAlert()

问题描述 投票:0回答:1
我有一个带有两个变量的 data.table 形式的表示。其中之一是带有下拉日历的日期列。当我错误地在日期列的单元格中输入某些内容而不是从日历中进行选择时,我希望弹出一个shinyAlert()。我已在代码片段的相关位置插入shinyAlert(),但当我错误地输入文本或从日历中正确选择时,它会自动弹出。

有人可以告诉我我的代码有什么问题吗?

library(shiny) library(rhandsontable) library(data.table) library(shinyalert) DF <- data.table(Date = as.character(Sys.Date()), col1 = as.numeric(c(1, 2, 3))) ui <- fluidPage( useShinyalert(), rHandsontableOutput("table") ) server <- function(input, output, session) { data <- reactiveValues() observe({ data$df <- as.data.table(DF) }) observeEvent(input$table, { if (!is.null(input$table)) { df <- hot_to_r(input$table) # Check if the Date column is in a valid format valid_dates <- !is.na(as.Date(df$Date, format = "%Y-%m-%d")) if (any(!valid_dates)) { shinyalert("Invalid Date", "Please enter a valid date format (YYYY-MM-DD).", type = "error") } } }) output$table <- renderRHandsontable({ rhandsontable(data$df) |> hot_col(1, dateFormat = "YYYY-MM-DD", type = "date") }) } shinyApp(ui, server)
    
r shiny shinyalert
1个回答
0
投票
这对我来说效果很好。

observeEvent(input$table, { if (!is.null(input$table)) { df <- hot_to_r(input$table) # print(any(is.na(as.character(df$Date)))) if (any(is.na(as.character(as.Date(df$Date))))) { shinyalert("Invalid Date", "Please enter a valid date format.", type = "error") } } })
    
© www.soinside.com 2019 - 2024. All rights reserved.