【问题标题】:Select day part of input date选择输入日期的日期部分
【发布时间】:2014-08-26 16:07:19
【问题描述】:

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

我试过了:

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

但这会产生错误:

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

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

编辑:

我想要的:输入焦点并选择日期,以便用户可以输入日期,留下月份和年份:

我尝试模拟一个制表键,但什么也没做:

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

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

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    编辑,更新。注意,解决方法

    试试

    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(更新,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/

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 2015-03-17
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多