问题是,我不知道为什么这段代码不起作用。我到处搜索!
此代码的作用是从数字框中获取信息,然后在用户输入文本(错误)时显示消息,并在用户输入数字时显示成功消息。
HTML - >
<input type="number" id="number">
<button onclick="makeTrack()">Make Track</button>
<div><div>
JS - &gt;问题出在哪里!
function makeTrack() {
var e = document.getElementById("number").value;
if(typeof e === "number";) {
alert("It works!");
} else if(typeof e === "string") {
alert("Please input a number!");
}
}
答案 0 :(得分:4)
document.getElementById("number").value
所有元素的value
将始终为字符串; JS并没有试图超越你,猜测它是否是一个数字(这将是灾难性的!)。首先尝试解析它,如下所示:
function makeTrack() {
var e = parseInt(document.getElementById("number").value, 10);
if(!isNaN(e)) {
alert("It works!");
} else {
alert("Please input a number!");
}
}
请注意,这会将"12345 this is a string"
的输入解释为12345
。如果这是不合需要的,请尝试以下方法:
var e = document.getElementById("number").value;
if (/^[0-9]+$/.test(e)) {
// good
e = parseInt(e, 10); // make sure to still convert it to a number!
}