所以我有这个代码,当用户键入一个数字时,它应该记录"这是一个有效的数字"在控制台中,它应该记录"这不是一个有效的数字"。但我的代码一直在记录"这是一个有效的数字"。我必须使用isNaN。
请放轻松,我刚开始使用JavaScript。
这是我的HTML代码:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Postcode</title>
<script src="postcode.js">
</script>
</head>
<body>
<form class="form">
<label for="postcode">Postcode: </label>
<input type="text" id="postcode">
</form>
</body>
</html>
这是我的JavaScript代码:
window.addEventListener("load", init);
function init() {
alert("Content loaded");
var nameInput = document.getElementById('postcode');
document.querySelector('form.form').addEventListener('submit', function (e) {
//prevent the normal submission of the form
e.preventDefault();
if (nameInput === isNaN || nameInput === "") {
console.log("this is not a valid number!");}
else if (nameInput !== isNaN) {
console.log("this is a valid number!");}
});
}
答案 0 :(得分:2)
javascript中有一些名为NaN
(非数字)的内容,然后有一个函数可以检查NaN
是否恰当地称为isNaN()
。
您正在检查您的变量是否与isNaN
函数完全相同,当然它不是,因为nameInput
是一个对象,或者更正确的是HTML输入元素。
你想要的是获取输入的值,并检查它是否为“Not A Number”,或者只是一个空字符串(这似乎是一个不必要的检查)
if (isNaN(nameInput.value) || nameInput.value === "") {
答案 1 :(得分:1)
使用isNaN(...)
检查某件事是否不是数字:
isNaN('a'); // true
并且nameInput
也指DOM节点,获取值(或innerHTML):
isNaN(nameInput.value)
您的完整代码:
window.addEventListener("load", init);
function init() {
var nameInput = document.getElementById('postcode');
document.querySelector('.form').addEventListener('submit', function (e) {
e.preventDefault();
if (!nameInput.value || isNaN(nameInput.value)) {
console.log("this is not a valid number!");}
else {
console.log("this is a valid number!");}
}
});
}
答案 2 :(得分:0)