在 Chrome 中填写表单时,HTML5 表单现在有一个漂亮的日期字段,Chrome 会呈现一个相当有用的日期选择器。
除非您有大量表格需要填写,否则这很好。
我想粘贴一个日期,但我找不到将日期粘贴到 Chrome 中的字段中的方法。
有人对我该如何做这件事有什么建议吗?
答案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');
});
答案2
AutoHotKey 似乎是可行的方法,因此感谢 KickAss 在评论中提供的指点。
不像相当简单如CRTL+V但它确实有效并且开启了其他宏的乐趣!