javascript - 如何检测 type=time 的输入是否输入了任何值
问题描述
我有一个 javascript 脚本,只要输入的 html 表单输入了type="time"
任何值,它就会检测到。
但是,每当我输入部分值(例如,键入一个数字,而不是 AM/PM 的完整时间)时,它都不会检测到输入有值。
在下面的示例中, timeSelector 是带有 的输入type="time"
。
if (timeSelector.value == "") {
timeSelector.classList.add("empty");
} else {
timeSelector.classList.remove("empty");
}
有什么方法可以检测到这种类型的东西吗?
为了澄清,由于显然我没有足够清楚地问我的问题,我需要检测输入何时time
输入了某些内容,即使该输入是无效或不完整的。
解决方案
那么 html5 输入的问题是,如果输入无效,它们不会在输入中给出文本。因此,您可以checkValidity
在用户从元素中移除焦点时使用。
var checkInput = function() {
var value = this.value
var isValid = this.checkValidity()
if (!this.value.length && isValid) {
console.log('empty');
} else if (!this.value.length && !isValid) {
console.log('invalid time entered')
} else {
console.log('valid time entered')
}
}
var input = document.querySelector("input")
input.addEventListener("input", checkInput)
input.addEventListener("blur", checkInput)
<input type="time" />
推荐阅读
- c++ - 是否强制转换为仅包含 char[] 并从该数组中读取的结构定义良好?
- reactjs - 如何强制地将 prop 分配给 React 组件?
- c# - 如何将特定图像设置为 Fluent Design AcrylicBackgroundSource
- batch-file - Windows 命令行中的文件名模式匹配
- install4j - 如何在 Windows 平台上的 Install4j 中使用 Amazon Corretto 创建 JRE 包
- vba - VBA如何撤消?
- kubernetes - 为什么在 Kubernetes 中执行系统预留的预留很危险?
- node.js - Express body 解析器无法正确解析对象
- javascript - 手风琴仅针对第一个元素以错误的方向扩展
- javascript - 如何使用数字键按降序对对象进行排序?