Отключить ввод с клавиатуры в ярком диапазоне дат

Я хочу сделать простую вещь, но я не мог найти способ сделать это. Я хочу отключить возможность изменения диапазона дат с помощью клавиатуры. Пользовательский опыт был бы лучше, если бы изменение даты с помощью клавиатуры было невозможно. Если вы хотите выбрать дату, которая на 10 месяцев раньше, и вы нажимаете клавишу на клавиатуре, вы возвращаетесь к текущему месяцу, который вызывает беспокойство.

Вот пример кода.

library('shiny')

shinyApp(
  ui = fluidPage(
    fluidRow(
      column(4, 
        dateRangeInput("dates", label = h3("Date range")),
        verbatimTextOutput("datesOut")
      )
    )
  ), 
  server = function(input, output) {
    output$datesOut <- renderPrint({ input$dates })
  }
)

Я хочу сделать невозможным использование клавиатуры для изменения ввода. Я видел этот вопрос, связанный с этим, но я не знаю, как добавить onkeydown="return false" в shiny::daterange()

Спасибо

1 ответ

Решение

Вот решение, которое я нашел для тех, кто заинтересован.

Мне просто нужно было добавить немного JavaScript. Я также закрываю указатель даты после выбора даты.

library('shiny')

shinyApp(
  ui = fluidPage(
    includeScript("code.js"),
    fluidRow(
      column(4, 
             dateRangeInput("dates", label = h3("Date range")),
             verbatimTextOutput("datesOut")
      )
    )
  ), 
  server = function(input, output) {
    output$datesOut <- renderPrint({ input$dates })
  }
)

И code.js.

$(document).ready(function(){

  $('#dates input').bsDatepicker({
    autoclose: true
  });
  $("#dates").attr('onkeydown', 'return false');
});
Другие вопросы по тегам