【问题标题】:Form validation datatype error in javascriptjavascript中的表单验证数据类型错误
【发布时间】:2019-03-06 20:21:06
【问题描述】:
我在所有情况下都得到 Login Done 并且这也将值视为字符串而不是数字 ....
function valid() {
let value = document.getElementById('box').value;
alert(typeof value)
if (isNaN(value) || value < 1 || value > 20) {
alert("Login Done")
} else if (name = '') {
alert("try agin")
}
}
【问题讨论】:
标签:
javascript
php
jquery
node.js
reactjs
【解决方案1】:
否定isNaN(value) 检查。在比较之前也将其转换为数字以减少混淆
function valid() {
let value = document.getElementById('box').value;
let parsedValue = isNaN(value) ? 1 : parseInt(value, 10);
console.log(typeof value);
console.log(typeof parsedValue);
if (parsedValue < 1 || parsedValue > 20) {
console.log("Login Done")
} else {
console.log("try agin")
}
}
valid();
document.getElementById('box').addEventListener('keyup', valid);
<input id="box" value="21" />