考虑以下代码,在无效输入时将数字输入小部件的背景设置为红色:
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 之间的任何(整数值)输入都将起作用。
这是一个错误,是否有解决方法(也就是说,我可以保持“步长”值,但仍然允许最小值和最大值之间的任何和所有数字),还是我在这里遗漏了什么?
我的印象是“步长”值只是控制箭头增加或减少输入的量,而不是用于输入验证。