选择输入日期的日期部分

时间:2014-08-26 16:07:20

标签: jquery html

给定一个带有type="date"的html输入元素,有没有办法聚焦元素并让它只选择日期的那一天?

我试过了:

$("#entry-date-text").focus();
var dt = $("#entry-date-text")[0];
dt.setSelectionRange(3, 5);

但这会产生错误:

  

未捕获的InvalidStateError:无法执行' setSelectionRange'上   ' HTMLInputElement':输入元素的类型(' date')不支持   选择。

错误不言自明。有解决办法吗?

编辑:

我想要的是:让输入集中并选择日期,以便用户输入日期,离开月份和年份:

Screen Shot

我尝试过模拟一个tab键,但没有做任何事情:

$("#entry-date-text").focus();
var press = jQuery.Event("keypress", { keyCode: 9, which: 9 });
$("#entry-date-text").trigger(press);

看到这个小提琴:http://jsfiddle.net/aq46s98p/4/

1 个答案:

答案 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();

jsfiddle http://jsfiddle.net/guest271314/ctgog2cw/6/