R блестящий числовой ввод шаг проверки

Рассмотрим следующий код, который устанавливает красный цвет фона виджета числового ввода при неправильном вводе:

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", то код работает как положено (недопустимо для первых двух примеров, допустимо для третьего примера).

Однако обратите внимание на то, что происходит, когда вводится нечетное число, которое находится между минимальным и максимальным значениями. Код думает, что ввод неверен. Но обратите внимание, что значение 'step' для числового ввода является четным, предполагая, что код ошибочно полагает, что правильное число должно быть не только между 0 и 10, но также кратно 2.

Чтобы доказать это, удалите параметр 'step' или измените его на 1, и тогда любой (целочисленный) ввод будет работать в диапазоне от 0 до 10.

Является ли это ошибкой, и есть ли обходной путь (то есть, чтобы я мог поддерживать значение 'step', но все же разрешать любые и все числа между min и max), или я что-то здесь упускаю?

У меня сложилось впечатление, что значение "step" просто контролирует величину, на которую стрелки увеличивают или уменьшают ввод, а не для проверки ввода.

0 ответов

Другие вопросы по тегам