R блестящий числовой ввод шаг проверки - PullRequest
0 голосов
/ 13 мая 2018

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

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' просто контролирует величину, на которую стрелки увеличивают или уменьшают ввод, а не для целей проверки ввода.

...