有没有办法使用输入类型持续时间 .我正在尝试以某种方式进行输入,用户添加类似这样的持续时间06:30:27:15 ( hh:mm:ss:ms )
并且应该只允许 (0-23:0-59:0-59:0-59)
.
任何帮助表示赞赏!
注意!:我想在 Angular2+ 中实现这个。
最佳答案
遗憾的是,HTML 输入和 JavaScript 本身都不支持持续时间数据类型。 <input type="time">
是一天中的某个时间,并且可能会根据您的区域设置显示 AM/PM 选择器。
最好的办法是使用文本输入并使用 JavaScript 事件自动插入 :
并忽略无效输入。使用模式属性也可能有所帮助。在从 JavaScript 方面使用它之前,请务必将值转换为数字。这里有一些东西可以帮助您入门。
{
let durationIn = document.getElementById("duration-input");
let resultP = document.getElementById("output");
durationIn.addEventListener("change", function (e) {
resultP.textContent = "";
durationIn.checkValidity();
});
durationIn.addEventListener("invalid", function (e) {
resultP.textContent = "Invalid input";
});
}
input:invalid:not(:focus) { background: red; }
<input id="duration-input" type="text" required pattern="[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2}" value="00:00:00:00" title="Write a duration in the format hh:mm:ss:ms">
<p id="output"></p>
我确信有许多开源库为此提供了现成的小部件。
关于javascript - HTML5 : input type duration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60065890/