Existe uma maneira de colar uma data em um campo de data do Chrome?

2

Ao preencher um formulário no Chrome, os formulários HTML5 têm um campo de data bacana hoje em dia, o qual o Google Chrome cria um seletor de datas muito útil.

Isso é bom, a menos que você tenha muitos formulários para preencher.

Gostaria de colar uma data, mas não consigo encontrar uma maneira de colar uma data no campo no Chrome.

Alguém tem alguma sugestão sobre como eu faço isso?

    
por John Reid 12.06.2014 / 13:15

2 respostas

1

Eu me deparei com esse mesmo problema, mas também precisava ser capaz de colar em outro campo de data. Eu fiz algo semelhante ao acima, mas tornei óbvio para o usuário que a data completa está sendo copiada.

Meu caso de uso também incluiu a necessidade de copiar e colar em campos de tipo local de data e hora.

link

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');
});
    
por 06.01.2018 / 06:13
0

O AutoHotKey parece ser o caminho a percorrer, por isso, graças ao KickAss pelo ponteiro nos comentários.

Não tão bastante fácil como um CRTL + V mas funciona e abre outra diversão de macro!

    
por 12.08.2014 / 14:51