Javascript isNaN似乎工作不正常

Javascript isNaN似乎工作不正常,javascript,html,if-statement,Javascript,Html,If Statement,有人能告诉我为什么下面的代码不能工作,并提供一个可能的修复。当按下按钮时,我希望它根据用户是否在输入字段中输入了数字显示正确或不正确 HTML: isNAN( 如果您不喜欢使用jQuery,而只使用javascript,那么您可以如下使用:isNan(parseInt())或isNan(parseFLoat()) isNumber=功能(obj){ 如果(!isNaN(parseInt(obj))){ //这是一个数字 返回true; } 否则返回false; } var-num=14; va

有人能告诉我为什么下面的代码不能工作,并提供一个可能的修复。当按下按钮时,我希望它根据用户是否在输入字段中输入了数字显示正确或不正确

HTML:

isNAN(
如果您不喜欢使用jQuery,而只使用javascript,那么您可以如下使用:
isNan(parseInt())
isNan(parseFLoat())

isNumber=功能(obj){
如果(!isNaN(parseInt(obj))){
//这是一个数字
返回true;
}
否则返回false;
}
var-num=14;
var textnum='14';
var text='yo';
var-nan=nan;
var DOM=document.getElementById(“demo”).innerHTML;
document.getElementById(“demo”).innerHTML=isNumber(textnum,true);

伊斯南(
如果您不喜欢使用jQuery,而只使用javascript,那么您可以如下使用:
isNan(parseInt())
isNan(parseFLoat())

isNumber=功能(obj){
如果(!isNaN(parseInt(obj))){
//这是一个数字
返回true;
}
否则返回false;
}
var-num=14;
var textnum='14';
var text='yo';
var-nan=nan;
var DOM=document.getElementById(“demo”).innerHTML;
document.getElementById(“demo”).innerHTML=isNumber(textnum,true);

问题在于
checkPeople
函数中的变量
name
没有链接到html中的输入标记。您需要在
checkPeople
函数中获取输入标记的值。我提供了以下工作代码:

功能检查人员(){
var name=document.getElementById('myinput')。值;
如果(isNaN(姓名)){
name=“不正确”
}
否则{
name=“正确”
}
document.getElementById('message').innerHTML=name;
}

输入名称:

检查


问题在于
checkPeople
函数中的变量
name
没有链接到html中的输入标记。您需要在
checkPeople
函数中获取输入标记的值。我提供了以下工作代码:

功能检查人员(){
var name=document.getElementById('myinput')。值;
如果(isNaN(姓名)){
name=“不正确”
}
否则{
name=“正确”
}
document.getElementById('message').innerHTML=name;
}

输入名称:

检查

isNaN()在数据不是数字时返回true

功能检查人员(){
var name=document.getElementById('myinput')。值;
如果(isNaN(姓名)){
name=“正确”
}
否则{
name=“不正确”
}
document.getElementById('message').innerHTML=name;
}

输入名称:

检查

isNaN()在数据不是数字时返回true

功能检查人员(){
var name=document.getElementById('myinput')。值;
如果(isNaN(姓名)){
name=“正确”
}
否则{
name=“不正确”
}
document.getElementById('message').innerHTML=name;
}

输入名称:

检查


首先
isNaN
代表
不是一个数字
,因此

isNaN(12234) //will be false

isNaN("jsjsjw")// will return true.
所以代码中的条件应该颠倒过来,也就是说,如果你不想让你的名字是数字的话

其次,您的代码没有连接您的输入,您需要在js中检查输入之前从输入中获取值

function checkpeople() {
var name = document.getElementById('myinput').value;
if (isNaN(name)) {
  name = "correct"
}
else {
  name = "incorrect"
}
document.getElementById('message').innerHTML = name;

首先,
isNaN
代表
不是一个数字,因此

isNaN(12234) //will be false

isNaN("jsjsjw")// will return true.
所以代码中的条件应该颠倒过来,也就是说,如果你不想让你的名字是数字的话

其次,您的代码没有连接您的输入,您需要在js中检查输入之前从输入中获取值

function checkpeople() {
var name = document.getElementById('myinput').value;
if (isNaN(name)) {
  name = "correct"
}
else {
  name = "incorrect"
}
document.getElementById('message').innerHTML = name;
使用。它比伊斯南好多了

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger('10');      // false
以下是isNaN

document.write(isNaN("")) // false
document.write(isNaN(" "))  // false
document.write(isNaN(0))  // false
document.write(isNaN(null)) // false
document.write(isNaN(false))  // false
document.write("" == false)  // true
document.write("" == 0)  // true
document.write(" " == 0)  // true
document.write(" " == false)  // true
document.write(0 == false) // true
document.write(" " == "") // false
如果您需要Internet explorer支持,可以使用
polyfills

尽可能多地使用本机JavaScript。您可以通过JavaScript获得更多的学习曲线,也可以减少对任何其他框架的依赖。使用。它比isNaN好得多

Number.isInteger(0);         // true
Number.isInteger(1);         // true
Number.isInteger('10');      // false
以下是isNaN

document.write(isNaN("")) // false
document.write(isNaN(" "))  // false
document.write(isNaN(0))  // false
document.write(isNaN(null)) // false
document.write(isNaN(false))  // false
document.write("" == false)  // true
document.write("" == 0)  // true
document.write(" " == 0)  // true
document.write(" " == false)  // true
document.write(0 == false) // true
document.write(" " == "") // false
如果您需要Internet explorer支持,可以使用
polyfills


尽可能多地使用本机JavaScript。您可以通过JavaScript获得更多的学习曲线,也可以减少与任何其他框架的依赖性。

您没有从文本框中选择输入的值,而只是比较一个空字符串

var name = "";
if (isNaN(name)) {
以下是工作示例:

功能检查人员(){
//更改了变量名,因为已经定义了全局变量,即`window.name`
var name_u2;=document.getElementsByName(“名称”)[0]。值;
if(!name| | isNaN(name|)){//if不是空的,不是数字
name=“不正确”
}否则{
name=“正确”
}
document.getElementById('message').innerHTML=name;
}
输入名称:

检查

您没有从文本框中选择输入的值,而只是比较一个空白字符串

var name = "";
if (isNaN(name)) {
以下是工作示例:

功能检查人员(){
//更改了变量名,因为已经定义了全局变量,即`window.name`
var name_u2;=document.getElementsByName(“名称”)[0]。值;
if(!name| | isNaN(name|)){//if不是空的,不是数字
name=“不正确”
}否则{
name=“正确”
}
document.getElementById('message').innerHTML=name;
}
输入名称:

检查

传递给
isNaN()
的参数始终是
name
变量中的空字符串,而不是用户输入的值,因此您的函数将始终显示
“correct”
。除了使用的
.value
属性外,您可以通过与为输出元素设置
.innerHTML
类似的方式从输入中获取值