0

考虑以下代码,在无效输入时将数字输入小部件的背景设置为红色:

library(shiny)

ui <- shinyUI(
    fluidPage(
        column(12,
               tags$style(HTML("input:invalid {background-color: #FFCCCC;}")),
               numericInput("test", h5("Test value:"), value = 6, min = 0, max = 10, step = 2, width = '200px')
        )
    )
)

server <- function(input, output) {
}

shinyApp(ui = ui, server = server)

如果用户输入“-1”、“11”或“4”,则代码按预期工作(前两个示例无效,第三个示例有效)。

但是,请观察当输入介于最小值和最大值之间的奇数时会发生什么。代码认为输入无效。但是请注意,数字输入的“步长”值是偶数,这表明代码错误地认为正确的数字不仅必须在 0 和 10 之间,而且必须是 2 的倍数。

为了证明这一点,删除 'step' 选项,或将其更改为 1,然后 0 到 10 之间的任何(整数值)输入都将起作用。

这是一个错误,是否有解决方法(也就是说,我可以保持“步长”值,但仍然允许最小值和最大值之间的任何和所有数字),还是我在这里遗漏了什么?

我的印象是“步长”值只是控制箭头增加或减少输入的量,而不是用于输入验证。

4

0 回答 0