【发布时间】:2021-01-12 07:34:55
【问题描述】:
我有这个 JS 函数来验证用户输入并确保它是 2000-2021 之间的一年,它工作得很好,问题是当我写无效输入时,它会将大纲更改为红色,但是当我写一个有效的输入它保持红色。即使我从一开始就写了有效的输入,它也会变红。
var batchRegex=/^[2][0][0-2][0-1]$/;
function checkBatch(batch){
if (batch = ""){
document.getElementById('batch').style.outlineColor = "red";
}
else if(!batchRegex.test(batch)){
document.getElementById('batch').style.outlineColor = "red";
}
else if(batchRegex.test(batch)){
document.getElementById('batch').style.outlineColor = "none";
}
}
<form method="post">
<input type="text" maxlength="4" id="batch" name="batch" onkeyup="checkBatch(this.value)" required>
<input type="submit" name="submit">
</form>
【问题讨论】:
-
那个正则表达式在哪里?
-
尝试 onblur 事件
-
对不起,我忘了包括它,这里是
var batchRegex=/^[2][0][0-2][0-1]$/;@MaheerAli -
@herosuper 它根本不会改变颜色
-
@herosuper 我不确定,但在没有之前我尝试过绿色并且没有工作
标签: javascript regex validation dom