【问题标题】:setSelectionRange for input type="time"输入类型 =“时间”的 setSelectionRange
【发布时间】:2014-01-13 16:19:56
【问题描述】:

我有一个对话框,其中有一个带有type="time" 的 HTML5 输入字段。

当对话框出现时,我想将编辑默认设置为对话框的“分钟”部分。我看不出有什么办法。

这是一个尝试使用的jsFiddle 示例:

$("#t")[0].setSelectionRange(3, 5);

无济于事。

有没有办法做到这一点?


注意:w3c 规范 here 特别有这个引用:

以下 IDL 属性和方法不适用于元素: 选中、文件、selectionStart、selectionEnd 和 selectionDirection IDL 属性; select()、setRangeText() 和 setSelectionRange() 方法。

这可能意味着这根本不可能。


注意 2:Chrome 在尝试调用此方法时会抛出此错误。其他浏览器可能会抛出不同的错误:

Uncaught InvalidStateError: 试图使用一个对象 不可用或不再可用。

【问题讨论】:

  • 我相信您当前的代码会给出"Object [object Object] has no method 'setSelectionRange'" 的异常,这是因为JQuery 对象没有该方法。您需要在 DOM 元素上调用它,您可以使用 $("#t")[0] 或纯 javascript getElementById... 但是,似乎随后会引发一个新错误:"An attempt was made to use an object that is not, or is no longer, usable.",我不知道如何修复那个。请注意,如果您使用普通的Text 输入类型,那么它可以正常工作,所以似乎特定于Time 输入类型
  • 嘿,谢谢。修复了我的代码。输入示例时,这只是一个错字。我真的很担心“进行了尝试……”问题。在描述中为这种影响添加了更多注释。
  • “这可能意味着这根本不可能。”不幸的是,我认为这就是答案:(

标签: javascript html


【解决方案1】:

用一些js来设置就行了。

document.getElementsByTagName("INPUT")[0].value = "13:24"
<input type="time" id="appt" name="appt" min="09:00" max="18:00" required>

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2021-03-07
    • 2022-01-05
    • 2019-02-12
    相关资源
    最近更新 更多