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

У меня есть указатель даты и кнопка. Пользователь выбирает дату и время, затем нажимает кнопку. Выбранная дата и время отображаются в предупреждении.

https://jsfiddle.net/jeffxiao/rfzm8pyt/

$(function() {
  $('#datetimepicker1').datetimepicker();

  $('#buttonGo').click(function() {
      var moment = $("#datetimepicker1").datetimepicker("date");
      alert(moment.format('MMMM Do YYYY, h:mm:ss a'));
  })
});

Вопрос в том, если пользователь изменяет текст для ввода вместо выбора из datetimepicker, есть ли способ получить обновленное datetime (в тексте)?

Мой тест показывает, что по умолчанию извлекается выбранное в средстве выбора, а НЕ обновленный текст в текстовом поле.

2 ответа

Решение

Это помогает? Установите идентификатор для вашего ввода, чтобы получить данные.

https://jsfiddle.net/djibe89/kx1rnbm9/

$(function() {
  $('#datetimepicker1').datetimepicker();

  $('#buttonGo').click(function() {
      var time = $("#input-datetimepicker").val();
      alert(time);
  })
});

У меня была похожая проблема, и я обнаружил, что с помощью viewDate вместо date решил проблему. Таким образом, ваш пример кода будет обновлен до

$(function() {
  $('#datetimepicker1').datetimepicker();

  $('#buttonGo').click(function() {
      var moment = $("#datetimepicker1").datetimepicker("viewDate");
      alert(moment.format('MMMM Do YYYY, h:mm:ss a'));
  })
});

Изменить: При дальнейшем расследовании я обнаружил, что выше, кажется, работает, только если у вас нет useCurrent: false задавать. Если useCurrent: false устанавливается, тогда viewDate, по-видимому, возвращает время инициализации DateTimePicker.

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