为输入类型为“time”的元素设置选择范围

8

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

当对话框出现时,我想将编辑默认为对话框的“分钟”部分。我找不到任何方法来实现它。

这是一个jsFiddle示例,试图使用:

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

毫无效果。

有没有一种方法可以做到这一点?


注意:w3c规范在这里特别引用了以下语句:

以下IDL属性和方法不适用于该元素: checked、files、selectionStart、selectionEnd和selectionDirection IDL属性;select()、setRangeText()和setSelectionRange() 方法。

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


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

未捕获的InvalidStateError:尝试使用一个对象, 它不可用或不再可用。


1
我相信你当前的代码会抛出一个异常:"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输入类型有问题。 - musefan
1
嘿,谢谢。我修复了我的代码。那只是在输入示例时的笔误。我真的很担心“尝试进行了...”的问题。在描述中添加了更多相关注释。 - CleverPatrick
这可能意味着这根本不可能。我想不幸的是这就是答案。 - Daniel Tonon
我有同样的问题,但是是关于日期输入的。 - undefined
1个回答

0

只需使用一些js进行设置即可。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接