【发布时间】: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]或纯 javascriptgetElementById... 但是,似乎随后会引发一个新错误:"An attempt was made to use an object that is not, or is no longer, usable.",我不知道如何修复那个。请注意,如果您使用普通的Text输入类型,那么它可以正常工作,所以似乎特定于Time输入类型 -
嘿,谢谢。修复了我的代码。输入示例时,这只是一个错字。我真的很担心“进行了尝试……”问题。在描述中为这种影响添加了更多注释。
-
“这可能意味着这根本不可能。”不幸的是,我认为这就是答案:(
标签: javascript html