首先,我的英语不是很好。
我想用HTML编写一个脚本,我可以在21:00(晚上9点)到早上6点之间进行登录访问。
function myFunc() {
var today = new Date();
var h = today.getHours();
var stunde = [21, 22, 23, 1, 2, 3, 4, 5, 6];
var s1 = document.getElementById("field1").value;
var s2 = document.getElementById("field2").value;
if (h == stunde) {
if (s1 == s2) {
if (s1 != '' && s2 != '') {
window.location.href = 'default.html';
}
} else window.alert("Veuillez insérer les données correctement.");
}
}
我的如果 - 声明不正确吗?也许我应该使用作为(;;)?
感谢您考虑我的要求:)
\ O /
答案 0 :(得分:1)
首先,您遗漏了{
声明的else
。
添加完之后,您需要确保在输入字段后才能实际触发逻辑。为此,我将功能转移到了一个单击按钮时调用的函数。
当时间无效时,您可能还需要else
条件;目前在这种情况下没有任何事情发生。
最后,第一个将时间与数组进行比较的条件需要检查数值在数组中,并不完全等于数组本身。这可以使用if (stunde.indexOf(h) > -1)
(或更直观的ES6方法 .includes()
)来完成。
以下都可以看到:
var today = new Date();
var h = today.getHours();
var stunde = [21, 22, 23, 1, 2, 3, 4, 5, 6];
var s1 = document.getElementById("field1").value;
var s2 = document.getElementById("field2").value;
document.getElementsByTagName("button")[0].addEventListener("click", function() {
if (stunde.indexOf(h) > -1) {
if (s1 == s2) {
if (s1 != '' && s2 != '') {
window.location.href = 'default.html';
}
} else {
window.alert("Veuillez insérer les données correctement.");
}
} else {
window.alert("Time not valid.");
}
});
<input id="field1">
<input id="field2">
<button>Go</button>
答案 1 :(得分:1)
if (h == stunde)
应该成为if (stunde.includes(h))