Javascript If/Else和问题类型

Javascript If/Else和问题类型,javascript,html,if-statement,input,typeof,Javascript,Html,If Statement,Input,Typeof,问题是,我不知道为什么这个代码不起作用。我到处找 此代码的作用是从数字框中获取信息,然后如果用户输入文本(错误),则显示消息,如果用户输入数字,则显示成功消息。 HTML-> 所有元素的值将始终是一个字符串;JS不会试图智取你,猜测它是否是一个数字(那将是灾难性的!)。首先尝试解析它,如下所示: function makeTrack() { var e = parseInt(document.getElementById("number").value, 10); if(!is

问题是,我不知道为什么这个代码不起作用。我到处找
此代码的作用是从数字框中获取信息,然后如果用户输入文本(错误),则显示消息,如果用户输入数字,则显示成功消息。
HTML->

所有元素的
将始终是一个字符串;JS不会试图智取你,猜测它是否是一个数字(那将是灾难性的!)。首先尝试解析它,如下所示:

function makeTrack() {
    var e = parseInt(document.getElementById("number").value, 10);
    if(!isNaN(e)) {
        alert("It works!");
    } else {
        alert("Please input a number!");
    }
}
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!
}
请注意,这将把输入的
“12345这是一个字符串”
解释为
12345
。如果不希望这样,请尝试以下方法:

function makeTrack() {
    var e = parseInt(document.getElementById("number").value, 10);
    if(!isNaN(e)) {
        alert("It works!");
    } else {
        alert("Please input a number!");
    }
}
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!
}
所有元素的
将始终是一个字符串;JS不会试图智取你,猜测它是否是一个数字(那将是灾难性的!)。首先尝试解析它,如下所示:

function makeTrack() {
    var e = parseInt(document.getElementById("number").value, 10);
    if(!isNaN(e)) {
        alert("It works!");
    } else {
        alert("Please input a number!");
    }
}
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!
}
请注意,这将把输入的
“12345这是一个字符串”
解释为
12345
。如果不希望这样,请尝试以下方法:

function makeTrack() {
    var e = parseInt(document.getElementById("number").value, 10);
    if(!isNaN(e)) {
        alert("It works!");
    } else {
        alert("Please input a number!");
    }
}
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!
}

从元素中获取的所有值都是字符串类型。您可能需要检查
是否为NaN
,并根据从元素中获取的所有值都是字符串类型。您可能想检查
isNaN
是否正确,并采取相应的行动。虽然答案的第一部分是正确的,但仅仅检查
isNaN
是不够的。有关javascript中数字测试的更多信息,请参见此处:它工作得非常好,问题在于:如果它不是数字,它不会发出警报()。顺便说一句,这仍然非常有用,谢谢。虽然你的答案的第一部分是正确的,但仅仅检查
isNaN
是不够的。有关javascript中数字测试的更多信息,请参见此处:它工作得非常好,问题在于:如果它不是数字,它不会发出警报()。顺便说一下,这仍然很有用,谢谢。