Max*_*rty 6 javascript html5 google-chrome
在chrome中,标签就像
<input id="picker" type="date">
Run Code Online (Sandbox Code Playgroud)
呈现为文本字段.然而,呼吁尝试用类似的东西来获得它的价值
$("#picker").val()
Run Code Online (Sandbox Code Playgroud)
在输入有效日期或从其下拉列表中选择有效日期之前,不会返回任何内容.我看了一下按键的所有对象的直接属性
$("#picker").keypress(function() {
var output = ""
for (var i in this) {
output += i +" value:"+ this[i] + "\n";
}
alert(output);
});?
Run Code Online (Sandbox Code Playgroud)
但无法看到我在这些方面的意见.在http://jsfiddle.net/5cN2q/上自己检查一下
我的问题是:当输入不是有效日期时,是否可以从chrome中输入[type ="date"]获取文本?
W3C日期状态规范定义了清理算法:
- 值清理算法如下:如果元素的值不是有效的日期字符串,则将其设置为空字符串。
每当设置输入元素的值时都会调用它,如DOM 输入值规范中所定义:
- 获取时,它必须返回元素的当前值。设置时,它必须将元素的值设置为新值,将元素的脏值标志设置为 true,如果元素的 type 属性的当前状态定义为 1,则调用值清理算法,然后,如果元素具有文本输入光标位置,应将文本输入光标位置移动到文本字段的末尾,取消选择任何选定的文本并将选择方向重置为无。
因此,value
当日期无效时,该属性将始终为空字符串。似乎没有指定“原始/脏/用户输入的文本值”的任何属性,因为它毕竟不是文本输入。
在我看来,这是一件好事,它有助于表单验证,因为无效日期被视为虚假值(空字符串),它还使浏览器能够更自由地实现日期输入的 UI。
如果您更喜欢非 W3C 日期输入,则可以将文本输入与旧式 JS 日期验证和日期选择器结合使用,例如jQuery UI datepicker。这将允许您检索输入的实际文本值,并且也是一个更加跨浏览器的解决方案。
归档时间: |
|
查看次数: |
19042 次 |
最近记录: |