关注html5输入的月份或年份[type =" date"]

时间:2015-05-06 19:11:32

标签: javascript jquery html5

我提供了一个小提示,显示当您将焦点应用于元素时会发生什么,它将焦点设置为“#day;'输入的一部分,但我找不到有关DOM如何呈现和识别日期的每个部分的任何文档。

如何以编程方式关注input[type="date"]元素的月/年部分,是否有关于如何在DOM中呈现此类元素的文档?

https://jsfiddle.net/uytdhqax/

<input id="dob" type="date" />
document.getElementById('dob').focus()

2 个答案:

答案 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实现了此输入类型。