我提供了一个小提示,显示当您将焦点应用于元素时会发生什么,它将焦点设置为“#day;'输入的一部分,但我找不到有关DOM如何呈现和识别日期的每个部分的任何文档。
如何以编程方式关注input[type="date"]
元素的月/年部分,是否有关于如何在DOM中呈现此类元素的文档?
https://jsfiddle.net/uytdhqax/
<input id="dob" type="date" />
document.getElementById('dob').focus()
答案 0 :(得分:4)
就我所知,在input[type=date]
元素的任何当前实现中,这是不可能的。此外,不同的浏览器以不同的方式实现此元素,因此没有独立的实现文档。
人们不得不问为什么你想模仿这种行为。仅更改年份值不会给元素赋值,除非已设置日期和月份。至少在Chrome中,如果您有input[type=date]
元素,则会显示包含占位符文字dd/mm/yyyy
的元素。如果您手动选择yyyy
部分并将其更改为2015
,则输入的文字现在将显示为dd/mm/2015
,但其value
将为{ {1}}(空字符串)。除非您手动编辑日期和月份部分,否则强制关注年份不会对用户造成混淆。
答案 1 :(得分:2)
简短回答:不支持。
如果您尝试使用
设置选择(焦点)var el = document.getElementById('dob');
var r = document.createRange();
el.setSelectionRange(r);
你会收到错误:
DOMException:无法在'HTMLInputElement'上执行'setSelectionRange':输入元素的类型('date')不支持选择。
同样唯一的documentation I found约会日期输入类型显示“不支持”,所以我认为没有这样的文档。到目前为止,只有Chrome实现了此输入类型。