2

При заполнении формы в Chrome формы HTML5 в настоящее время имеют изящное поле даты, которое Chrome отображает довольно полезный инструмент выбора даты.

Это хорошо, если у вас нет много форм для заполнения.

Я хотел бы вставить дату, но не могу найти способ вставить дату в поле в Chrome.

У кого-нибудь есть предложения, как мне это сделать?

2 ответа2

1

Я столкнулся с той же самой проблемой, но также должен был быть в состоянии вставить в другое поле даты. Я сделал что-то похожее на вышеописанное, но для пользователя стало очевидным, что копируется полная дата.

Мой вариант использования также включал необходимость копирования и вставки в поля типа datetime-local.

https://jsfiddle.net/h444uL45/23/

var control_pressed = false;

function changeInputType(oldObject, oType) {
  var newObject = document.createElement("input");
  newObject.type = oType;
  if(oldObject.size) {newObject.size = oldObject.size;}
  if(oldObject.value) {newObject.value = oldObject.value;}
  if(oldObject.name) {newObject.name = oldObject.name;}
  if(oldObject.id) {newObject.id = oldObject.id;}
  if(oldObject.className) {newObject.className = oldObject.className;}
  oldObject.parentNode.replaceChild(newObject,oldObject);
  newObject.select();
  return newObject;
}

function swapToText(date_type) {
    $('input[type="'+date_type+'"]').on("keydown", function(event) {
    if ((event.keyCode == 17) && (control_pressed != true)) {
      $(this).addClass("revert_date_to_text");
      changeInputType(this, "text");
      swapToDate(date_type);
      control_pressed = true;
    }
  })
}

function swapToDate(date_type) {
  $(".revert_date_to_text").on("keyup", function(event) {
    if ((event.keyCode == 17) && (control_pressed != false)) {
      $(this).removeClass("revert_date_to_text");
      if (date_type == 'datetime-local') {
        $(this).val($.format.date($(this).val().replace(/\//g,"-").replace("T"," ")+':00.000', "yyyy-MM-ddTHH:mm"));
      } else {
        $(this).val($.format.date($(this).val().replace(/\//g,"-"), "yyyy-MM-dd"));
      }
      changeInputType(this, date_type);
      swapToText(date_type);
      control_pressed = false;
    }
  })
}

$(function() {
  $.getScript('https://cdnjs.cloudflare.com/ajax/libs/jquery-dateFormat/1.0/jquery.dateFormat.min.js');
  swapToText('date');
  swapToText('datetime-local');
});
0

AutoHotKey, кажется, является подходящим способом, так что спасибо KickAss за указатель в комментариях.

Не так довольно легко , как CRTL + V , но он работает и открывает другой макро-ки удовольствие!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .