我需要能够将焦点设置在日期时间 - 本地输入控件的小时部分。
<input type="datetime-local" />
该解决方案还需要能够处理各种日期时间格式 - 我目前将其留给浏览器来决定。
所以这个
变为
答案 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>
<span class="hour">--</span>:
<span class="minute">--</span>
</div>
答案 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();