javascript - 代码片段在 JSFiddle 中运行,但不在我的 IDE 中(增加 30 分钟)?
问题描述
关于在输入字段中输入时间增加 30 分钟的代码在 jsfiddle 中有效,但在我的 IDE 中无效。我在 html 表单所在的位置创建了一个新的 test.php,在 js 所在的位置创建了一个新的 script.js。
在我的 test.php 文件中:
<html>
<script src="script.js"></script>
<form>
<input type="time" name="zeitstart" class="zeitangaben" id="start"><br>
<input type="time" name="zeitende" id="ende" class="ende">
<input type="submit" value="senden">
</form>
</html>
在我的 script.js 文件中:
// Element per ID abrufen
const start = document.getElementById('start');
const end = document.getElementById('ende');
// EventListener hinzufügen
start.addEventListener('change', () => {
// Stunden & Minuten als INT
let hours = parseInt(start.value.split(':')[0]);
let minutes = parseInt(start.value.split(':')[1]);
// 30 Min hinzufügen
minutes += 30;
// Wenn eine volle Stunde überschritten ist, soll die nächste anfangen
// Wenn 24 Std um sind, von vorne anfangen (nächster Tag)
if (minutes >= 60) {
hours = (hours + 1) % 24;
minutes -= 60;
}
// Zeichenfolge mit einer festen länge von 2 formatieren
hours = (hours < 10 ? `0${hours}` : `${hours}`);
minutes = (minutes < 10 ? `0${minutes}` : `${minutes}`);
// const end den neuen Wert zuweisen
end.value = `${hours}:${minutes}`;
});
两个文件的方向相同。任何想法?
解决方案
您的代码在加载 DOM 之前执行。最简单的解决方案是将脚本标签移动到 HTML 文件的末尾。
或者,您可以在加载窗口时添加事件侦听器。 https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
window.addEventListener('load', function handler() {
// your code
});
这在 jsFiddle 上起作用的原因是 javascript 文件和 HTML 文件之间的绑定是由它们完成的(以正确的顺序)。
推荐阅读
- docker - 使用 Docker 的 Mysql 集群:错误 708 '没有更多属性元数据记录(增加 MaxNoOfAttributes)'
- javascript - 如何在使用JAVA加密的nodejs中解密
- node.js - 如何从我的 NODEJS GAE APP 调用外部 Web 服务
- javascript - HTML5 Audio tag no sound safari Desktop 和 IOS
- java - 如何正确创建复选框数组?或者我的错误是什么?
- excel - Excel:根据特定值将多行插入最后一行
- javascript - 在 JavaScript 选定元素上挂钩 jQuery 方法
- laravel - 传递给 App\Http\Controllers\Auth\LoginController::attemptLogin() 的参数 1 必须是 App\Http\Controllers\Auth\Request 的实例
- high-availability - 如何恢复 Stacked control plane 和 etcd 节点的 HA 集群
- javascript - 使用 $.Ajax 调用 UBER api