给定一个带有type="date"
的html输入元素,有没有办法聚焦元素并让它只选择日期的那一天?
我试过了:
$("#entry-date-text").focus();
var dt = $("#entry-date-text")[0];
dt.setSelectionRange(3, 5);
但这会产生错误:
未捕获的InvalidStateError:无法执行' setSelectionRange'上 ' HTMLInputElement':输入元素的类型(' date')不支持 选择。
错误不言自明。有解决办法吗?
编辑:
我想要的是:让输入集中并选择日期,以便用户输入日期,离开月份和年份:
我尝试过模拟一个tab键,但没有做任何事情:
$("#entry-date-text").focus();
var press = jQuery.Event("keypress", { keyCode: 9, which: 9 });
$("#entry-date-text").trigger(press);
看到这个小提琴:http://jsfiddle.net/aq46s98p/4/
答案 0 :(得分:0)
编辑,更新。注意,解决方法
尝试
HTML
<!-- optional `label` for `#day` -->
<label for="day">Select Day of the Month</label>
<input id="day" tabindex="1" type="number" min="1" max="31" value="01" title="Select Day of the Month" />
<!-- added optional `readonly` attribute ; limit date input to `day` (`#day`) -->
<input id="entry-date-text" tabindex="2" type="date" readonly="true" value="" />
js(updated,v2)
$("#day").focus()
.on("change", function(e) {
var $elem = $(this);
var day = $elem.val();
$elem.val(day.length < 2 ? "0" + day : day);
var $dt = $elem.siblings("#entry-date-text");
$dt.val((new Date().toJSON()).slice(0, 8) + $elem.val());
}).change();