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