元素类型“date”在由getElementsByTagName()访问时将其显示为“文本”
Element type 'date' when accessed by getElementsByTagName() shows it as 'text'
当我尝试访问第一个文本框的类型时,它显示"文本"而不是"日期",而当我尝试访问文本的大小时,它显示正确的值。
为什么会这样?如何在 Javascript 中检查特定文本框的类型是日期还是文本?
<html>
<head>
<script>
function getElements()
{
var x=document.getElementsByTagName("input");
alert(x[0].type);
}
</script>
</head>
<body>
<input type="date" size="25"><br>
<input type="text" size="20"><br>
<input type="text" size="20"><br><br>
<input type="text" size="20"><br><br>
<input type="button" onclick="getElements()" value="How many input elements?">
</body>
</html>
基于日期和时间的输入时间通常在桌面浏览器上不可用。因此,定义了此类类型的输入元素将默认为 text
类型。
因此,当您访问元素的type
时,您将获得浏览器实际用于该元素的任何类型。
如果你想得到你实际指定的值,忽略浏览器是否知道它,你可以使用getAttribute
到原始值:
alert(x[0].getAttribute('type')); // date
你的浏览器应该支持input type="data"
,否则浏览器会将类型识别为text
。
此处的支持表: http://caniuse.com/#feat=input-datetime
type
是input
DOM 节点的计算属性。因此,它反映了浏览器认为它应该是什么。该值只能来自当前浏览器支持的值列表,如果未知,则默认为 text
。例:
<input type="foo">
也会产生element.type === 'text'
.在这种情况下,您的浏览器不支持 type="date"
方法,并回退到纯文本输入字段。(这是HTML5规范中的设计行为。
相关文章:
- 无法在AJAX成功访问中显示JSON结果
- 每次访问显示一次警报
- 访问要在 React Native Text 组件中显示的对象数组
- 访问模板中的属性时出现问题-除'name'显示错误'没有定义[attributename];
- 我的Javascript项目正在访问网络摄像头,但没有显示任何内容
- 模态无法访问其显示功能
- json访问数据未正确显示
- 无法访问在开发人员工具中显示但不在页面源中的元素
- 当直接访问作为数组的javascript对象属性时,它显示为空
- Javascript - 循环访问对象数组,仅显示最后一个对象
- 如何访问新的切换突出显示方法
- 在子对象中显示筛选列表的挖空 js.访问要过滤的父对象列表
- JavaScript 循环访问嵌套对象并显示在单独的行中
- SharePoint - 显示模板 - 访问客户端上下文对象
- Foursquare 返回“无访问控制允许源”标头显示错误
- 循环访问未显示在 Express 应用程序中的虚拟数据
- Chrome 显示“访问控制允许来源”错误
- Java-使用“;查找“;用于显示访问文件中的特定记录或从中删除特定记录的命令
- 在javascript链接上显示访问过的颜色
- 删除,隐藏,不显示访问过的链接