有没有办法专注于日期时间本地输入控件中的特定单位

时间:2015-04-17 14:13:05

标签: html datetimepicker

我需要能够将焦点设置在日期时间 - 本地输入控件的小时部分。

<input type="datetime-local" />

该解决方案还需要能够处理各种日期时间格式 - 我目前将其留给浏览器来决定。

所以这个

enter image description here

变为

enter image description here

2 个答案:

答案 0 :(得分:5)

每个浏览器都以自己的方式呈现输入元素,您可视化看到的大多数格式/布局都是由浏览器的代码完成的。显然,您仍然可以与这些元素进行交互,但只能使用您习惯的本机命令(焦点,鼠标悬停,单击等)。

感觉应该可以重新创建与用户交互相同的状态,但这些内容隐藏在每个浏览器代码中。

我认为您最好的选择是调查已经存在的各种JS日期选择器,看看是否符合您的要求,如果不是最接近您将找到的解决方案,那就是创建自己的有一些由日期时间输入字段支持的聪明样式

<input type="datetime-local" style="display:none" />
<div class="custom-datetime-local">
    <span class="day">dd</span>/
    <span class="month">mm</span>/
    <span class="year">yyyy</span>
    &nbsp;
    <span class="hour">--</span>:
    <span class="minute">--</span>
</div>

https://jsfiddle.net/dh4a4f2p/

答案 1 :(得分:4)

据我所知,没有办法专注于日期时间 - 本地字段的小时。事实上,所有浏览器甚至都不支持datetime-local字段。您无法在Firefox和IE上使用datetime-local。您可以忽略IE,但如果Firefox也在列表中,您最好重新考虑是否应该坚持使用datetime-local。

如果您使用普通的javascript datetime-picker插件,您可以尝试使用vanilla javascript提供的setSelectionRange()方法专注于小时位置。

例如,如果在ID为startDate的div中有日期输入字段,并且设置了正确的日期时间格式,则可以通过以下方式执行此操作:

var startDateBox = $("#startDate input")[0];
startDateBox.setSelectionRange(11, 13);
startDateBox.focus();

JS fiddle demo